[PATCH] Several bad bugs in fs/*

Alexander Viro (viro@math.psu.edu)
Thu, 22 Apr 1999 09:09:26 -0400 (EDT)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-1804928587-924786566=:30
Content-Type: TEXT/PLAIN; charset=US-ASCII

Linus, we have several really bad bugs and I think that they are
worth fixing in official tree. I've backported minimal fixes (from the FAT
patch) and it would be really nice if you'ld look at it.

In order of decreasing nastiness:

* Buffer overruns in fat_readdirx(). AFAICS they were there since
1.3. Details: fat_readdirx() doesn't do any sanity checks when it
reads the first slot of VFAT name. It contains the number of
slots occupied by the name. Put there 0xff and you've got a random
memory corruption. Another variant (more evil) being: put the name
longer than 300 Unicode characters and the thing will happily try
to translate it into ASCII. Into the on-stack array. Stack smashing
in ring 0... The same effect can be achieved if you'll pick the name
of sane length, but with the characters out of mapping. They are
translated into 4-character combinations. Longer than 75 and there
we go - same stack smashing. Fix: do required sanity checks.

* race in buffer cache. Scenario:
1. we umount filesystem. Suppose that it restores the blocksize upon
exit (FAT-derived ones and sysvfs do it). set_blocksize() is called.
Notice that we are likely to have a lot of dirty buffers at that
moment. set_blocksize() will wait on them, unhash them and leave them
on the dirty list.
2. Suppose that we remount the fs immediately. set_blocksize() is
called again and buffers are untouched, since they have the right
size. They remain unhashed and on the dirty list.
3. Suppose that the same blocks are bread() again. We got two copies -
new one (hashed) and old (unhashed).
4. Only now bdflush() wakes up. Finds clean buffer on the dirty list.
Does refile_buffer() on it. Which places it on the clean list and
rehashes the sucker. Happy, happy, joy, joy. Especially since the next
bread() will find the older copy (it's placed into the head of the
hash chain).
I've actually hit this race testing new VFAT code (Gordon's testsuite
does a lot of fast dirtify/umount/mount/dirtify passes), but the same
thing happens with the old implementation of FAT-derived filesystems
and with sysvfs. Fix: do remove_from_queues() instead of
remove_from_hash_queue().

* vfat_rename() does bad things if we are moving a directory opened
via different alias. Fix: make vfat_lookup() look for existing aliases,
drop them if possible and if they can't be invalidated - return them.
Changed ->lookup() type, but in a binary compatible way. Change in
filesystems is trivial and looks, erm, obviously correct. It had been
tested - FAT patch includes it for quite a while.

* ntfs_lookup() returns positive value in case of error. Yup, missed -.
Fix: obvious.

* qnx4_lookup() doesn't return negative dentries - it returns -ENOENT.
Not good. Fix: obvious.

* Minor stuff, but annoying and trivial to fix - lots of functions check
that directory inode is non-NULL and is indeed a directory. In case
of methods it's definitely bogus - checks are done in VFS. Removed.

So there... Patch (against 2.2.7-pre1) attached. Linus, I'ld be
very grateful if you could look it through. Folks, please help to test it
- stuff should be OK (non-trivial parts are small and already tested), but
fsck-up fairy shows up wherever she wants, so...
Cheers,
Al

---559023410-1804928587-924786566=:30
Content-Type: APPLICATION/octet-stream; name="aliases-path-14.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.10.9904220909260.30@weyl.math.psu.edu>
Content-Description:
Content-Disposition: attachment; filename="aliases-path-14.gz"

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
---559023410-1804928587-924786566=:30--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/