From: Yury Selivanov <yury@magic.io>
Date: Fri, 8 Jun 2018 00:29:55 +0000 (-0400)
Subject: bpo-33803: Fix a crash in hamt.c (#7504)
X-Git-Tag: v3.8.0a1~1633
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=378c53cc3187dba57c7560ccc2557f516c8a7bc8;p=python

bpo-33803: Fix a crash in hamt.c (#7504)
---

diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-06-07-20-18-38.bpo-33803.n-Nq6_.rst b/Misc/NEWS.d/next/Core and Builtins/2018-06-07-20-18-38.bpo-33803.n-Nq6_.rst
new file mode 100644
index 0000000000..9cb8457ac4
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2018-06-07-20-18-38.bpo-33803.n-Nq6_.rst	
@@ -0,0 +1,2 @@
+Fix a crash in hamt.c caused by enabling GC tracking for an object that
+hadn't all of its fields set to NULL.
diff --git a/Python/hamt.c b/Python/hamt.c
index 52171222b0..f8bce5961a 100644
--- a/Python/hamt.c
+++ b/Python/hamt.c
@@ -2476,6 +2476,8 @@ hamt_alloc(void)
     if (o == NULL) {
         return NULL;
     }
+    o->h_count = 0;
+    o->h_root = NULL;
     o->h_weakreflist = NULL;
     PyObject_GC_Track(o);
     return o;