GNU bug report logs - #11100
Racy code in copy.c

Previous Next

Package: coreutils;

Reported by: Philipp Thomas <pth <at> suse.de>

Date: Tue, 27 Mar 2012 13:32:02 UTC

Severity: normal

Merged with 11074

Done: Jim Meyering <jim <at> meyering.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Jim Meyering <jim <at> meyering.net>
To: Eric Blake <eblake <at> redhat.com>
Cc: Philipp Thomas <pth <at> suse.de>, 11100 <at> debbugs.gnu.org
Subject: bug#11100: Racy code in copy.c
Date: Fri, 04 May 2012 16:58:53 +0200
Eric Blake wrote:

> On 05/04/2012 08:47 AM, Jim Meyering wrote:
>>
>> * src/copy.c (copy_reg): In a narrow race (stat sees dest, yet
>> open-without-O_CREAT fails with ENOENT), retry the open with O_CREAT.
>> Reported by Philipp Thomas and Neil F. Brown in
>> http://debbugs.gnu.org/11100
>
> Question - when we retry with adding O_CREAT, should we also add O_EXCL?
>  That is, we already lost the race once, but the O_EXCL will ensure that
> we don't lose the race a second time and that we really are creating a file.

I was concerned about that, too, but noted
it's already always done in the O_CREAT/*new_dst path:

  if (*new_dst)
    {
    open_with_O_CREAT:;

      int open_flags = O_WRONLY | O_CREAT | O_BINARY;
      dest_desc = open (dst_name, open_flags | O_EXCL,
                        dst_mode & ~omitted_permissions);




This bug report was last modified 3 years and 185 days ago.

Previous Next


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