Message242309
| Author |
pkt |
| Recipients |
pkt |
| Date |
2015年05月01日.14:02:15 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1430488935.49.0.703786529764.issue24095@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
# Breakpoint 1, encoder_listencode_dict (s=0x405b23fc, acc=0xbfaf96ec, dct=<D at remote 0x405c8af4>, indent_level=0)
# at /home/p/Python-3.4.1/Modules/_json.c:1540
# 1540 items = PyMapping_Keys(dct);
# (gdb) print *items
# 1ドル = {_ob_next = 0x4059029c, _ob_prev = 0x405c8ab4, ob_refcnt = 1, ob_type = 0x830f1a0 <PyLong_Type>}
# (gdb) n
# 1541 if (items == NULL)
# (gdb) n
# 1543 if (!PyList_Check(items)) {
# (gdb) n
# 1547 if (PyList_Sort(items) < 0)
# (gdb) n
# 1549 nitems = PyList_GET_SIZE(items);
# (gdb) n
# 1550 for (i = 0; i < nitems; i++) {
# (gdb) n
# 1552 key = PyList_GET_ITEM(items, i);
# (gdb) n
# 1553 value = PyDict_GetItem(dct, key);
# (gdb) n
# 1554 item = PyTuple_Pack(2, key, value);
# (gdb) print *key
# 2ドル = {_ob_next = 0xdbdbdbdb, _ob_prev = 0xdbdbdbdb, ob_refcnt = -606348325, ob_type = 0xdbdbdbdb}
# (gdb) n
#
# Program received signal SIGSEGV, Segmentation fault.
# 0x08104047 in PyTuple_Pack (n=2) at Objects/tupleobject.c:216
# 216 Py_INCREF(o);
#
# We circumvent use after free bug in PyType_IsSubtype (poc_enc_dict1.py) by
# returning -1 from the __hash__() method. This way PyDict_GetItem bails
# quickly, without triggering the problematic code.
# PyTuple_Pack handles a stale "key" pointer and crashes. Use after free. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2015年05月01日 14:02:15 | pkt | set | recipients:
+ pkt |
| 2015年05月01日 14:02:15 | pkt | set | messageid: <1430488935.49.0.703786529764.issue24095@psf.upfronthosting.co.za> |
| 2015年05月01日 14:02:15 | pkt | link | issue24095 messages |
| 2015年05月01日 14:02:15 | pkt | create |
|