A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2007-August/074272.html below:

[Python-Dev] Segfault

[Python-Dev] SegfaultHrvoje Nikšić hrvoje.niksic at avl.com
Thu Aug 23 09:38:16 CEST 2007
On Wed, 2007-08-22 at 21:32 -0700, Neal Norwitz wrote:
>         Py_BEGIN_ALLOW_THREADS
>         errno = 0;
> -       ret = _portable_fseek(f->f_fp, offset, whence);
> +       if (f->f_fp != NULL)
> +               ret = _portable_fseek(f->f_fp, offset, whence); 

Doesn't this kind of code retain a race condition?  Since this is an
"allow threads" section that runs with the GIL released, file_close
might acquire the GIL and be running in parallel to this code.  If
file_close sets f_fp to NULL after the "if" condition evaluates, but
before the call to _portable_fseek completes, we still get a segfault.

If I understand the Python threading model, the only reliable way to
resolve this is to protect the PyFileObject operations with a mutex.


More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4