Granularity of OSError
Sean DiZazzo
half.italian at gmail.com
Fri Sep 18 21:48:33 EDT 2009
On Sep 18, 5:23 pm, Christian Heimes <li... at cheimes.de> wrote:
> kj wrote:
> > For example, LBYL would look like this:
>
> > if os.path.isfile(some_file):
> > os.unlink(some_file)
>
> > In contrast, EAFP would look like this:
>
> > try:
> > os.unlink(some_file)
> > except OSError:
> > pass
>
> The two version aren't equal. The first one suffers from a race
> condition which may lead to a severe security issue. The file may be
> gone or replaced by a different file in the time span between the check
> and the call to unlink().
>
> Christian
Thanks for pointing that out. I never thought of it before.
~Sean
More information about the Python-list
mailing list