summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorRoel Kluin <roel.kluin@gmail.com>2009-09-22 16:43:28 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-23 07:39:27 -0700
commitca976c53de0c33160083d36f70bd18d7970f6969 (patch)
treeefd3abdc12b0c636a4dba94dbcab4bafc78423b8 /fs
parentfa081b00a80ef3f4575c99af6e97d29e1628cf51 (diff)
downloadlinux-ca976c53de0c33160083d36f70bd18d7970f6969.tar.gz
linux-ca976c53de0c33160083d36f70bd18d7970f6969.tar.bz2
linux-ca976c53de0c33160083d36f70bd18d7970f6969.zip
smbfs: read buffer overflow
This function uses signed integers for the unix_date and local variables - if a negative number is supplied and the leap-year condition is not met, month will be 0, leading to a read of day_n[-1] Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/smbfs/proc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/smbfs/proc.c b/fs/smbfs/proc.c
index 9468168b9af5..71c29b6670b4 100644
--- a/fs/smbfs/proc.c
+++ b/fs/smbfs/proc.c
@@ -509,7 +509,7 @@ date_unix2dos(struct smb_sb_info *server,
month = 2;
} else {
nl_day = (year & 3) || day <= 59 ? day : day - 1;
- for (month = 0; month < 12; month++)
+ for (month = 1; month < 12; month++)
if (day_n[month] > nl_day)
break;
}