GNU bug report logs - #52048
Bug in shred -u

Previous Next

Package: coreutils;

Reported by: David McLaughlin <david.mclaughlin <at> theredx.com>

Date: Tue, 23 Nov 2021 00:48:02 UTC

Severity: normal

Tags: notabug

Merged with 52049

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 52048 in the body.
You can then email your comments to 52048 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-coreutils <at> gnu.org:
bug#52048; Package coreutils. (Tue, 23 Nov 2021 00:48:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to David McLaughlin <david.mclaughlin <at> theredx.com>:
New bug report received and forwarded. Copy sent to bug-coreutils <at> gnu.org. (Tue, 23 Nov 2021 00:48:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: David McLaughlin <david.mclaughlin <at> theredx.com>
To: bug-coreutils <at> gnu.org
Subject: Bug in shred -u
Date: Mon, 22 Nov 2021 15:20:11 -0700
[Message part 1 (text/plain, inline)]
Hello,

It seems that shred utilizes a pattern of renaming and then unlinking.
However, I don't see the use of a lock for this pattern and so there is a
race condition and the shred command can fail. This test case is timing
sensitive, and therefore doesn't happen every time. But it happens
frequently. I am trying to write robust code that depends on shred and I
find this issue is problematic.

Test case:
$ touch a b c && for file in a b c; do shred -u -n 1 $file & done && wait
[1] 28262
[2] 28263
[3] 28264
shred: c: failed to remove: No such file or directory
[1]   Done                    shred -u -n 1 "$file"
[2]-  Done                    shred -u -n 1 "$file"
[3]+  Exit 1                  shred -u -n 1 "$file"


Other information:
$ shred --version
shred (GNU coreutils) 8.21
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Colin Plumb.

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04.6 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.6 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

$ bash --version
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[Message part 2 (text/html, inline)]

Added tag(s) notabug. Request was from Paul Eggert <eggert <at> cs.ucla.edu> to control <at> debbugs.gnu.org. (Fri, 28 Jan 2022 01:52:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 52048 <at> debbugs.gnu.org and David McLaughlin <david.mclaughlin <at> theredx.com> Request was from Paul Eggert <eggert <at> cs.ucla.edu> to control <at> debbugs.gnu.org. (Fri, 28 Jan 2022 01:52:02 GMT) Full text and rfc822 format available.

Merged 52048 52049. Request was from Paul Eggert <eggert <at> cs.ucla.edu> to control <at> debbugs.gnu.org. (Fri, 28 Jan 2022 01:52:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 25 Feb 2022 12:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 59 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.