Bug 238121

Summary: rm can segfault when racing another rm to delete a directory
Product: Red Hat Enterprise Linux 4 Reporter: Bryn M. Reeves <bmr>
Component: coreutilsAssignee: Tim Waugh <twaugh>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 4.4CC: meyering
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: RHBA-2007-0786 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-11-15 16:09:28 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
patch to fix rm segfault none

Description Bryn M. Reeves 2007-04-27 10:30:28 UTC
+++ 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):

coreutils-5.97-12.3.fc6

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)
  
Actual results:

One of the 'rm's will segfault.

Expected results:

Neither of the 'rm's would segfault.

Additional info:

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.

Patch attached.

-- Additional comment from dshaw on 2007-04-05 11:54 EST --
Created an attachment (id=151772)
Patch to fix rm segfault

Comment 1 Bryn M. Reeves 2007-04-27 10:52:17 UTC
Created attachment 153598 [details]
patch to fix rm segfault

Comment 8 errata-xmlrpc 2007-11-15 16:09:28 UTC
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.

http://rhn.redhat.com/errata/RHBA-2007-0786.html