Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.os.linux.development.apps > #64

Re: mkdir() and thread safety()

From Rainer Weikusat <rweikusat@mssgmbh.com>
Newsgroups comp.os.linux.development.apps
Subject Re: mkdir() and thread safety()
Date 2011-04-01 21:03 +0100
Message-ID <87bp0pkadn.fsf@sapphire.mobileactivedefense.com> (permalink)
References (1 earlier) <2d58ece6-bb9c-42e0-a990-fc13b92723ec@a21g2000prj.googlegroups.com> <87oc4vtn8o.fsf@sapphire.mobileactivedefense.com> <d18b0392-2e9d-49e5-911b-0b0a07c3f082@i35g2000prd.googlegroups.com> <87tyejtx4u.fsf@sapphire.mobileactivedefense.com> <35d2db97-6ab2-42b1-a83a-c4764f3c3869@w7g2000pre.googlegroups.com>

Show all headers | View raw


David Schwartz <davids@webmaster.com> writes:
> On Mar 31, 3:14 am, Rainer Weikusat <rweiku...@mssgmbh.com> wrote:
>> David Schwartz <dav...@webmaster.com> writes:
>
>> > Yes, it is. The algorithm I specified will always fail if the named
>> > file already existed before the operation started.
>
>> The operation starts when the 'backend' (whatever that happens to be)
>> starts  to process the mkdir request, not at some arbitrarily distant
>> random time in the past.
>
> The operation starts when the application calls 'mkdir'. The standard
> only requires the operation to fail with EEXIST if the directory
> exists before the operation starts.

... and just because the text doesn't explicitly state that 'the
implementation is supposed to work correctly' doesn't mean that it was
meant to allow incorrect implementations. Your non-atomic multi-step
algorithm is such an incorrect implementation: Because of the TOCTOU
race in it, its behaviour is actually undefined and cannot be defined.

Back to comp.os.linux.development.apps | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: mkdir() and thread safety() David Schwartz <davids@webmaster.com> - 2011-03-30 14:53 -0700
  Re: mkdir() and thread safety() Richard Kettlewell <rjk@greenend.org.uk> - 2011-03-30 23:20 +0100
    Re: mkdir() and thread safety() Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-03-31 11:17 +0100
  Re: mkdir() and thread safety() Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-03-31 11:14 +0100
    Re: mkdir() and thread safety() George Neuner <gneuner2@comcast.net> - 2011-03-31 19:13 -0400
      Re: mkdir() and thread safety() Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-04-01 16:52 +0100
        Re: mkdir() and thread safety() George Neuner <gneuner2@comcast.net> - 2011-04-03 13:59 -0400
          Re: mkdir() and thread safety() Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-04-08 23:59 +0100
    Re: mkdir() and thread safety() David Schwartz <davids@webmaster.com> - 2011-04-01 12:22 -0700
      Re: mkdir() and thread safety() Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-04-01 21:03 +0100
        Re: mkdir() and thread safety() David Schwartz <davids@webmaster.com> - 2011-04-01 14:27 -0700
      Re: mkdir() and thread safety() Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-04-01 21:23 +0100
        Re: mkdir() and thread safety() David Schwartz <davids@webmaster.com> - 2011-04-01 14:28 -0700

csiph-web