Red Hat Bugzilla – Bug 238121
rm can segfault when racing another rm to delete a directory
Last modified: 2010-10-22 10:35:33 EDT
+++ This bug was initially created as a clone of Bug #235994 +++
+++ That bug was initially created as a clone of Bug #235401 +++
Description of problem:
When deleting a deep directory tree from two different instances of "rm -rf"
simultaneously, one of the instances may segfault.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create a deep directory tree (I used 10 levels deep)
2. From two different command lines, rm -rf the parent directory of the tree
3. Repeat (it requires tricky timing so may not always happen)
One of the 'rm's will segfault.
Neither of the 'rm's would segfault.
The problem seems to be in remove.c:remove_cwd_entries(), where opendir is
called on ".". If this fails for reason of ENOENT, the function calls readdir
on the NULL dirp.
-- Additional comment from email@example.com on 2007-04-05 11:54 EST --
Created an attachment (id=151772)
Patch to fix rm segfault
Created attachment 153598 [details]
patch to fix rm segfault
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.