]> git.sur5r.net Git - u-boot/commit
ext4: Fix handling of direntlen in unlink_filename
authorStefan Brüns <stefan.bruens@rwth-aachen.de>
Sun, 9 Oct 2016 18:15:27 +0000 (20:15 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 24 Oct 2016 12:04:36 +0000 (08:04 -0400)
commitd1bdf22461e9f0638d4ddca0ccccfe61f8a653cf
tree3243614899dfb2f8b49cb1995aac1765fe5f025f
parent15bf8c4f93020663b443b817a0192498bd9cd3f0
ext4: Fix handling of direntlen in unlink_filename

The direntlen checks were quite bogus, i.e. the loop termination used
"len + offset == blocksize" (exact match only), and checked for a
direntlen less than 0. The latter can never happen as the len is
unsigned, this has been reported by Coverity, CID 153384.

Use the same code as in search_dir for directory traversal. This code
has the correct checks for direntlen >= sizeof(struct dirent), and
offset < blocksize.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Reported-by: Coverity (CID: 153383, 153384)
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
fs/ext4/ext4_common.c