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 |
---|---|---|
getapplbycreator.c | -rw-r--r-- | 5.6 KB |
gusiconfig.cpp | -rw-r--r-- | 3.0 KB |
macapplication.c | -rw-r--r-- | 3.0 KB |
macgetargv.c | -rw-r--r-- | 6.3 KB |
macgetcompiler.c | -rw-r--r-- | 2.0 KB |
macgetpath.c | -rw-r--r-- | 12.4 KB |
macgetplatform.c | -rw-r--r-- | 1.5 KB |
macglue.c | -rw-r--r-- | 29.7 KB |
macimport.c | -rw-r--r-- | 12.4 KB |
macmain.c | -rw-r--r-- | 16.3 KB |
macsetfiletype.c | -rw-r--r-- | 2.2 KB |
macshlglue.c | -rw-r--r-- | 4.2 KB |
missingtoolboxcalls.c | -rw-r--r-- | 6.9 KB |
pyGUSISIOUX.cp | -rw-r--r-- | 5.2 KB |
Computing file changes ...