[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

heap corruption in du

From: Mikulas Patocka
Subject: heap corruption in du
Date: Mon, 10 Oct 2005 18:23:13 +0200 (CEST)


I got this message from du from coreutils 5.2.1:

du: fts_read failed: No such file or directory
*** glibc detected *** corrupted double-linked list: 0x0806c390 ***

I was sometimes able reproduce on an AFS filesystem. It turned out that AFS filesystem changes inode numbers or device numbers, so fts_safe_changedir called at the end of fts_read fails. fts_read sets FTS_STOP, returns NULL and lets fts_cur to point to just freed entry few lines above (free(tmp)). The next call to fts_close will do a double-free.

This patch fixes the problem in this situation (and other possible scenarios resulting from various syscalls failing) --- however you should better go through the whole code for handling of fts tree and check it.


Attachment: du-patch
Description: du-patch

reply via email to

[Prev in Thread] Current Thread [Next in Thread]