Staging
v0.5.1
v0.5.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 |
---|---|---|
Build | ||
Compat | ||
Contrib | ||
Demo | ||
Distributions | ||
IDE scripts | ||
Include | ||
Lib | ||
MPW | ||
Modules | ||
OSX | ||
PlugIns | ||
Python | ||
Resources | ||
Tools | ||
Unsupported | ||
Wastemods | ||
mwerks | ||
scripts | ||
tclmods | ||
HISTORY | -rw-r--r-- | 27.2 KB |
ReadMe | -rw-r--r-- | 9.0 KB |
ReadMe-dev | -rw-r--r-- | 482 bytes |
ReadMe-src | -rw-r--r-- | 563 bytes |
Relnotes | -rw-r--r-- | 3.8 KB |
_checkversion.py | -rw-r--r-- | 417 bytes |
Computing file changes ...