summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXiang Zhang <angwerzx@126.com>2017-02-20 04:25:16 (GMT)
committerGitHub <noreply@github.com>2017-02-20 04:25:16 (GMT)
commitd0e8212ed70445cc3d48b0d4ae7c9cb480004010 (patch)
treea9d646b5f5aa9f193fb05b124c53d4f91ade1de1
parente395c4dbe19115aaab315c2a113b172e9fef307a (diff)
downloadcpython-d0e8212ed70445cc3d48b0d4ae7c9cb480004010.zip
cpython-d0e8212ed70445cc3d48b0d4ae7c9cb480004010.tar.gz
cpython-d0e8212ed70445cc3d48b0d4ae7c9cb480004010.tar.bz2
bpo-29347: Fix possibly dereferencing undefined pointers when creating weakref objects (#128)
-rw-r--r--Misc/NEWS3
-rw-r--r--Objects/weakrefobject.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 752ce05..0c2a573 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ What's New in Python 3.7.0 alpha 1?
Core and Builtins
-----------------
+- bpo-29347: Fixed possibly dereferencing undefined pointers
+ when creating weakref objects.
+
- bpo-29438: Fixed use-after-free problem in key sharing dict.
- bpo-29546: Set the 'path' and 'name' attribute on ImportError for ``from ... import ...``.
diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c
index d12db91..da05950 100644
--- a/Objects/weakrefobject.c
+++ b/Objects/weakrefobject.c
@@ -24,6 +24,8 @@ init_weakref(PyWeakReference *self, PyObject *ob, PyObject *callback)
{
self->hash = -1;
self->wr_object = ob;
+ self->wr_prev = NULL;
+ self->wr_next = NULL;
Py_XINCREF(callback);
self->wr_callback = callback;
}