1
0
Fork 0
remarkable-linux/fs/isofs
Al Viro f1ee8222ae get_rock_ridge_filename(): handle malformed NM entries
[ Upstream commit 99d825822e ]

Payloads of NM entries are not supposed to contain NUL.  When we run
into such, only the part prior to the first NUL goes into the
concatenation (i.e. the directory entry name being encoded by a bunch
of NM entries).  We do stop when the amount collected so far + the
claimed amount in the current NM entry exceed 254.  So far, so good,
but what we return as the total length is the sum of *claimed*
sizes, not the actual amount collected.  And that can grow pretty
large - not unlimited, since you'd need to put CE entries in
between to be able to get more than the maximum that could be
contained in one isofs directory entry / continuation chunk and
we are stop once we'd encountered 32 CEs, but you can get about 8Kb
easily.  And that's what will be passed to readdir callback as the
name length.  8Kb __copy_to_user() from a buffer allocated by
__get_free_page()

Cc: stable@vger.kernel.org # 0.98pl6+ (yes, really)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
2016-05-17 13:43:04 -04:00
..
Kconfig fs/Kconfig: move iso9660, udf out 2009-01-22 13:15:55 +03:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compress.c initramfs: support initramfs that is bigger than 2GiB 2014-08-08 15:57:26 -07:00
dir.c [readdir] convert isofs 2013-06-29 12:56:47 +04:00
export.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
inode.c isofs: avoid unused function warning 2014-11-19 13:09:37 -05:00
isofs.h isofs: Fix unbounded recursion when processing relocated directories 2014-08-19 18:29:30 +02:00
joliet.c NLS: update handling of Unicode 2009-06-15 21:44:43 -07:00
namei.c isofs: don't bother with ->d_op for normal case 2014-10-31 06:33:17 -04:00
rock.c get_rock_ridge_filename(): handle malformed NM entries 2016-05-17 13:43:04 -04:00
rock.h [PATCH] rock: rename union members 2005-06-21 19:07:38 -07:00
util.c isofs: Fix bug in the way to check if the year is a leap year 2015-01-07 09:51:49 +01:00
zisofs.h [PATCH] mark address_space_operations const 2006-06-28 14:59:04 -07:00