bpo-33199: Initialize ma_version_tag in PyDict_Copy (GH-6341)
https://github.com/python/cpython/commit/9a90826c9b64183713ebe5a98ec82423d9c... commit: 9a90826c9b64183713ebe5a98ec82423d9cae3ee branch: 3.6 author: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> committer: GitHub <noreply@github.com> date: 2018-04-02T20:22:14-07:00 summary: bpo-33199: Initialize ma_version_tag in PyDict_Copy (GH-6341) (cherry picked from commit d1c82c5cc7be0c21dddf86fd19c1702f6218459b) Co-authored-by: INADA Naoki <methane@users.noreply.github.com> files: A Misc/NEWS.d/next/Core and Builtins/2018-04-02-09-32-40.bpo-33199.TPnxQu.rst M Objects/dictobject.c diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-04-02-09-32-40.bpo-33199.TPnxQu.rst b/Misc/NEWS.d/next/Core and Builtins/2018-04-02-09-32-40.bpo-33199.TPnxQu.rst new file mode 100644 index 000000000000..22abf8d00011 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2018-04-02-09-32-40.bpo-33199.TPnxQu.rst @@ -0,0 +1,2 @@ +Fix ``ma_version_tag`` in dict implementation is uninitialized when copying +from key-sharing dict. diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 8862be81482d..ddd05826ea5f 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -2654,6 +2654,7 @@ PyDict_Copy(PyObject *o) split_copy->ma_values = newvalues; split_copy->ma_keys = mp->ma_keys; split_copy->ma_used = mp->ma_used; + split_copy->ma_version_tag = DICT_NEXT_VERSION(); DK_INCREF(mp->ma_keys); for (i = 0, n = size; i < n; i++) { PyObject *value = mp->ma_values[i];
participants (1)
-
Miss Islington (bot)