summaryrefslogtreecommitdiff
path: root/fs/befs/inode.h
diff options
context:
space:
mode:
authorDiego Calleja <diegocg@gmail.com>2006-08-05 12:14:55 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-08-06 08:57:48 -0700
commit94f563c426a78c97fc2a377315995e6ec8343872 (patch)
treea3cd539a665947d389d90bc99aff9daa50eda5a2 /fs/befs/inode.h
parente31f59ce593b073ee14241781edfb0637697eeb6 (diff)
[PATCH] Fix BeFS slab corruption
In bugzilla #6941, Jens Kilian reported: "The function befs_utf2nls (in fs/befs/linuxvfs.c) writes a 0 byte past the end of a block of memory allocated via kmalloc(), leading to memory corruption. This happens only for filenames which are pure ASCII and a multiple of 4 bytes in length. [...] Without DEBUG_SLAB, this leads to further corruption and hard lockups; I believe this is the bug which has made kernels later than 2.6.8 unusable for me. (This must be due to changes in memory management, the bug has been in the BeFS driver since the time it was introduced (AFAICT).) Steps to reproduce: Create a directory (in BeOS, naturally :-) with files named, e.g., "1", "22", "333", "4444", ... Mount it in Linux and do an "ls" or "find"" This patch implements the suggested fix. Credits to Jens Kilian for debugging the problem and finding the right fix. Signed-off-by: Diego Calleja <diegocg@gmail.com> Cc: Jens Kilian <jjk@acm.org> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/befs/inode.h')
0 files changed, 0 insertions, 0 deletions