• Anthony Baxter's avatar
    backport tim_one's patch: · 91193370
    Anthony Baxter yazdı
    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/Python/bltinmodule.c:2.253
    91193370
Adı
Son kayıt (commit)
Son güncelleme
..
.cvsignore Loading commit data...
atof.c Loading commit data...
bltinmodule.c Loading commit data...
ceval.c Loading commit data...
codecs.c Loading commit data...
compile.c Loading commit data...
dup2.c Loading commit data...
dynload_aix.c Loading commit data...
dynload_beos.c Loading commit data...
dynload_dl.c Loading commit data...
dynload_hpux.c Loading commit data...
dynload_mac.c Loading commit data...
dynload_next.c Loading commit data...
dynload_os2.c Loading commit data...
dynload_shlib.c Loading commit data...
dynload_stub.c Loading commit data...
dynload_win.c Loading commit data...
errors.c Loading commit data...
exceptions.c Loading commit data...
fmod.c Loading commit data...
frozen.c Loading commit data...
frozenmain.c Loading commit data...
future.c Loading commit data...
getargs.c Loading commit data...
getcompiler.c Loading commit data...
getcopyright.c Loading commit data...
getcwd.c Loading commit data...
getmtime.c Loading commit data...
getopt.c Loading commit data...
getplatform.c Loading commit data...
getversion.c Loading commit data...
graminit.c Loading commit data...
hypot.c Loading commit data...
import.c Loading commit data...
importdl.c Loading commit data...
importdl.h Loading commit data...
mactoolboxglue.c Loading commit data...
marshal.c Loading commit data...
memmove.c Loading commit data...
modsupport.c Loading commit data...
mysnprintf.c Loading commit data...
mystrtoul.c Loading commit data...
pyfpe.c Loading commit data...
pystate.c Loading commit data...
pythonrun.c Loading commit data...
sigcheck.c Loading commit data...
strdup.c Loading commit data...
strerror.c Loading commit data...
strtod.c Loading commit data...
structmember.c Loading commit data...
symtable.c Loading commit data...
sysmodule.c Loading commit data...
thread.c Loading commit data...
thread_beos.h Loading commit data...
thread_cthread.h Loading commit data...
thread_foobar.h Loading commit data...
thread_lwp.h Loading commit data...
thread_nt.h Loading commit data...
thread_os2.h Loading commit data...
thread_pth.h Loading commit data...
thread_pthread.h Loading commit data...
thread_sgi.h Loading commit data...
thread_solaris.h Loading commit data...
thread_wince.h Loading commit data...
traceback.c Loading commit data...