• Guido van Rossum's avatar
    Patch by Stephen Turner, who writes: · 2f80d96c
    Guido van Rossum yazdı
    """
    It fixes a memory corruption error resulting from BadPickleGet
    exceptions in load_get, load_binget and load_long_binget.  This was
    initially reported on c.l.py as a problem with Cookie.py; see the thread
    titled "python core dump (SIGBUS) on Solaris" for more details.
    
    If PyDict_GetItem(self->memo, py_key) call failed, then py_key was being
    Py_DECREF'd out of existence before call was made to
    PyErr_SetObject(BadPickleGet, py_key).
    
    The bug can be duplicated as follows:
    
    import cPickle
    cPickle.loads('garyp')
    
    This raises a BadPickleGet exception whose value is a freed object.  A
    core dump will soon follow.
    """
    
    Jim Fulton approves of the patch.
    2f80d96c
cPickle.c 103 KB