Message ID | 1322157054-27754-2-git-send-email-apw@canonical.com |
---|---|
State | New |
Headers | show |
On Thu, Nov 24, 2011 at 05:50:54PM +0000, Andy Whitcroft wrote: > From: Dan Carpenter <dan.carpenter@oracle.com> > > On a corrupted file system the ->len field could be wrong leading to > a buffer overflow. > > Reported-and-acked-by: Clement LECIGNE <clement.lecigne@netasq.com> > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > Cc: stable@kernel.org > Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> > > (cherry picked from commit bc5b8a9003132ae44559edd63a1623b7b99dfb68) > CVE-2011-4330 > BugLink: http://bugs.launchpad.net/bugs/894374 > Signed-off-by: Andy Whitcroft <apw@canonical.com> > --- > fs/hfs/trans.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/fs/hfs/trans.c b/fs/hfs/trans.c > index e673a88..b1ce4c7 100644 > --- a/fs/hfs/trans.c > +++ b/fs/hfs/trans.c > @@ -40,6 +40,8 @@ int hfs_mac2asc(struct super_block *sb, char *out, const struct hfs_name *in) > > src = in->name; > srclen = in->len; > + if (srclen > HFS_NAMELEN) > + srclen = HFS_NAMELEN; > dst = out; > dstlen = HFS_MAX_NAMELEN; > if (nls_io) { > -- > 1.7.5.4 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team >
diff --git a/fs/hfs/trans.c b/fs/hfs/trans.c index e673a88..b1ce4c7 100644 --- a/fs/hfs/trans.c +++ b/fs/hfs/trans.c @@ -40,6 +40,8 @@ int hfs_mac2asc(struct super_block *sb, char *out, const struct hfs_name *in) src = in->name; srclen = in->len; + if (srclen > HFS_NAMELEN) + srclen = HFS_NAMELEN; dst = out; dstlen = HFS_MAX_NAMELEN; if (nls_io) {