hfs: add sanity check for file name length

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>
This commit is contained in:
Dan Carpenter 2011-11-14 17:52:08 +03:00 committed by Linus Torvalds
parent 7f80850d3f
commit bc5b8a9003

View File

@ -40,6 +40,8 @@ int hfs_mac2asc(struct super_block *sb, char *out, const struct hfs_name *in)
src = in->name; src = in->name;
srclen = in->len; srclen = in->len;
if (srclen > HFS_NAMELEN)
srclen = HFS_NAMELEN;
dst = out; dst = out;
dstlen = HFS_MAX_NAMELEN; dstlen = HFS_MAX_NAMELEN;
if (nls_io) { if (nls_io) {