rm(1) bug, possibly serious

Oliver Fromme olli at lurza.secnetix.de
Tue Sep 25 10:45:27 PDT 2007


Torfinn Ingolfsen wrote:
 > Oliver Fromme wrote:
 > 
 > > $ cd /tmp
 > > $ mkdir -p foo/var
 > > $ cd foo/bar
 > > $ rm -rf ../
 > > rm: ../: Invalid argument
 > > $ rm -rf ../
 > > $ 
 > > 
 > > Note that the command "rm -rf ../" was entered twice.
 > > The first time I got an error message (and exit code 1),
 > > the second time it apparently succeeded.  The very same
 > > command.
 > 
 > What happens if you issue a 'pwd' command after each 'rm -rf ../'?
 > We want to see the output.

It's /tmp/foo/bar every time.

 > IMHO, the only way the second rm command *should* succeed, is if it
 > invalidates the current working directory, thus releasing the last lock
 > on the directory.
 > 
 > Quick testing here:
 > [...]
 > Ok, I think it is a bug.

Yes, I think so, too.

By the way, an additional confusion is that ".." and "../"
are handled differently.  Specifying ".." always leads to
this message:

rm: "." and ".." may not be removed

and nothing is actually removed.  It is confusing that
adding a slash leads to a different error message _and_
removal of the contents of the parent directory.  Clearly
a POLA violation.

Best regards
   Oliver

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart

FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd

"Perl will consistently give you what you want,
unless what you want is consistency."
        -- Larry Wall


More information about the freebsd-stable mailing list