Staging
v0.8.1
v0.8.1
https://github.com/python/cpython
Revision 88c646e99e6969b0933f2e4d8bedd5ef530f2412 authored by Anthony Baxter on 30 April 2002, 03:58:47 UTC, committed by Anthony Baxter on 30 April 2002, 03:58:47 UTC
[Re-did unicodeobject.c - it's changed a lot since 2.1 :) Pretty confident that it's correct] Repair widespread misuse of _PyString_Resize. Since it's clear people don't understand how this function works, also beefed up the docs. The most common usage error is of this form (often spread out across gotos): if (_PyString_Resize(&s, n) < 0) { Py_DECREF(s); s = NULL; goto outtahere; } The error is that if _PyString_Resize runs out of memory, it automatically decrefs the input string object s (which also deallocates it, since its refcount must be 1 upon entry), and sets s to NULL. So if the "if" branch ever triggers, it's an error to call Py_DECREF(s): s is already NULL! A correct way to write the above is the simpler (and intended) if (_PyString_Resize(&s, n) < 0) goto outtahere; Bugfix candidate. Original patch(es): python/dist/src/Objects/fileobject.c:2.161 python/dist/src/Objects/stringobject.c:2.161 python/dist/src/Objects/unicodeobject.c:2.147
1 parent b64e6dc
Tip revision: 88c646e99e6969b0933f2e4d8bedd5ef530f2412 authored by Anthony Baxter on 30 April 2002, 03:58:47 UTC
backport tim_one's patch:
backport tim_one's patch:
Tip revision: 88c646e
File | Mode | Size |
---|---|---|
RPM | ||
ACKS | -rw-r--r-- | 6.3 KB |
AIX-NOTES | -rw-r--r-- | 7.3 KB |
BLURB | -rw-r--r-- | 1.6 KB |
BLURB.LUTZ | -rw-r--r-- | 5.6 KB |
BLURB.WINDOWS | -rw-r--r-- | 3.8 KB |
BeOS-NOTES | -rw-r--r-- | 1.4 KB |
BeOS-setup.py | -rw-r--r-- | 24.6 KB |
HISTORY | -rw-r--r-- | 305.2 KB |
HPUX-NOTES | -rw-r--r-- | 1.0 KB |
HYPE | -rw-r--r-- | 3.1 KB |
Makefile.pre.in | -rw-r--r-- | 9.9 KB |
NEWS | -rw-r--r-- | 78.3 KB |
NEXT-NOTES | -rw-r--r-- | 2.2 KB |
PURIFY.README | -rw-r--r-- | 3.6 KB |
Porting | -rw-r--r-- | 1.9 KB |
README | -rw-r--r-- | 1.8 KB |
RFD | -rw-r--r-- | 3.9 KB |
cheatsheet | -rw-r--r-- | 21.8 KB |
comparisons | -rw-r--r-- | 6.6 KB |
editline-fix | -rw-r--r-- | 2.4 KB |
faq2html.py | -rwxr-xr-x | 6.6 KB |
find_recursionlimit.py | -rw-r--r-- | 2.2 KB |
fixfuncptrs.sh | -rwxr-xr-x | 2.2 KB |
gdbinit | -rw-r--r-- | 898 bytes |
indent.pro | -rw-r--r-- | 66 bytes |
python-mode.el | -rw-r--r-- | 120.1 KB |
python.man | -rw-r--r-- | 10.2 KB |
renumber.py | -rwxr-xr-x | 2.6 KB |
setuid-prog.c | -rw-r--r-- | 5.3 KB |
unicode.txt | -rw-r--r-- | 38.0 KB |
vgrindefs | -rw-r--r-- | 498 bytes |
Computing file changes ...