aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/fpga/fpga-mgr.c
diff options
context:
space:
mode:
authorOGAWA Hirofumi <[email protected]>2015-11-20 23:57:15 +0000
committerLinus Torvalds <[email protected]>2015-11-21 00:17:32 +0000
commit928a477102c4fc6739883415b66987207e3502f4 (patch)
tree1b38ac8017f2427750f11806437271634177b6f8 /drivers/fpga/fpga-mgr.c
parentmm/hugetlbfs: fix bugs in fallocate hole punch of areas with holes (diff)
downloadkernel-928a477102c4fc6739883415b66987207e3502f4.tar.gz
kernel-928a477102c4fc6739883415b66987207e3502f4.zip
fat: fix fake_offset handling on error path
For the root directory, . and .. are faked (using dir_emit_dots()) and ctx->pos is reset from 2 to 0. A corrupted root directory could cause fat_get_entry() to fail, but ->iterate() (fat_readdir()) reports progress to the VFS (with ctx->pos rewound to 0), so any following calls to ->iterate() continue to return the same entries again and again. The result is that userspace will never see the end of the directory, causing e.g. 'ls' to hang in a getdents() loop. [[email protected]: cleanup and make sure to correct fake_offset] Reported-by: Vegard Nossum <[email protected]> Tested-by: Vegard Nossum <[email protected]> Signed-off-by: Richard Weinberger <[email protected]> Signed-off-by: OGAWA Hirofumi <[email protected]> Cc: <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'drivers/fpga/fpga-mgr.c')
0 files changed, 0 insertions, 0 deletions