Skip to content

Commit d545d1b

Browse files
committed
gh-136660: fix UB in dictobject memcpy when there are 0 entries
1 parent 9363703 commit d545d1b

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

Objects/dictobject.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2095,7 +2095,8 @@ dictresize(PyInterpreterState *interp, PyDictObject *mp,
20952095
if (unicode) { // combined unicode -> combined unicode
20962096
PyDictUnicodeEntry *newentries = DK_UNICODE_ENTRIES(newkeys);
20972097
if (oldkeys->dk_nentries == numentries && mp->ma_keys->dk_kind == DICT_KEYS_UNICODE) {
2098-
memcpy(newentries, oldentries, numentries * sizeof(PyDictUnicodeEntry));
2098+
// avoid memcpy on 0 entries to avoid UB on oldentries
2099+
if (numentries > 0) memcpy(newentries, oldentries, numentries * sizeof(PyDictUnicodeEntry));
20992100
}
21002101
else {
21012102
PyDictUnicodeEntry *ep = oldentries;

0 commit comments

Comments
 (0)