homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients vstinner
Date 2013年06月13日.21:02:17
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1371157337.46.0.836983135269.issue18205@psf.upfronthosting.co.za>
In-reply-to
Content
The callback PyOS_ReadlineFunctionPointer (used to read a line from the standard input) must return a buffer allocated by PyMem_Malloc(), but PyOS_Readline() releases the GIL before calling PyOS_ReadlineFunctionPointer.
Simplified extract of PyOS_Readline():
 Py_BEGIN_ALLOW_THREADS
 if (!isatty (fileno (sys_stdin)) || !isatty (fileno (sys_stdout)))
 rv = PyOS_StdioReadline (sys_stdin, sys_stdout, prompt);
 else
 rv = (*PyOS_ReadlineFunctionPointer)(sys_stdin, sys_stdout,
 prompt);
 Py_END_ALLOW_THREADS
tok_nextc() calls PyOS_Readline() and calls PyMem_FREE() to release its result.
PyOS_ReadlineFunctionPointer should allocate memory using malloc(), not using PyMem_Malloc(). But PyOS_Readline() should copy the line into a buffer allocated by PyMem_Malloc() to keep backward compatibility.
See also issue #18203 and #3329.
History
Date User Action Args
2013年06月13日 21:02:17vstinnersetrecipients: + vstinner
2013年06月13日 21:02:17vstinnersetmessageid: <1371157337.46.0.836983135269.issue18205@psf.upfronthosting.co.za>
2013年06月13日 21:02:17vstinnerlinkissue18205 messages
2013年06月13日 21:02:17vstinnercreate

AltStyle によって変換されたページ (->オリジナル) /