vfs/vfs.c: valgrind: fixed read-of-unallocated memory
commit27fbf91c28f68a8fd6c8ebf358588e80e21452d3
authorSergei Trofimovich <slyfox@inbox.ru>
Wed, 22 Apr 2009 18:49:27 +0000 (22 21:49 +0300)
committerSergei Trofimovich <slyfox@inbox.ru>
Wed, 22 Apr 2009 19:15:51 +0000 (22 22:15 +0300)
treec6d81225b580c221f66c58134f5fb8fd90ccdaa4
parentb88147f0c6c98504680e57334667257a5d5df961
vfs/vfs.c: valgrind: fixed read-of-unallocated memory

Comment snippet:
    We can't just allocate struct dirent as (see man dirent.h)
    struct dirent has VERY nonnaive semantics of allocating
    d_name in it. Moreover, linux's glibc-2.9 allocates dirents _less_,
    than 'sizeof (struct dirent)' making full bitwise (sizeof dirent) copy
    heap corrupter. So, allocate longliving dirent with at least
    (NAME_MAX + 1) for d_name in it.
    Strictly saying resulting dirent is unusable as we don't adjust internal
    structures, holding dirent size. But we don't use it in libc infrastructure.
    TODO: to make simpler homemade dirent-alike structure.

Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
vfs/vfs.c