Fix upsizing of marks stack in pickle module. (GH-8860)

Previously marks stack was upsized even there was space for additional item.
This commit is contained in:
Sergey Fedoseev 2018-08-25 12:54:40 +05:00 committed by Serhiy Storchaka
parent c406d5cd74
commit 86b89916d1
2 changed files with 4 additions and 4 deletions

View File

@ -309,9 +309,9 @@ if has_c_implementation:
return data
check_unpickler(recurse(0), 32, 0)
check_unpickler(recurse(1), 32, 20)
check_unpickler(recurse(20), 32, 58)
check_unpickler(recurse(50), 64, 58)
check_unpickler(recurse(100), 128, 134)
check_unpickler(recurse(20), 32, 20)
check_unpickler(recurse(50), 64, 60)
check_unpickler(recurse(100), 128, 140)
u = unpickler(io.BytesIO(pickle.dumps('a', 0)),
encoding='ASCII', errors='strict')

View File

@ -6288,7 +6288,7 @@ load_mark(UnpicklerObject *self)
* mark stack.
*/
if ((self->num_marks + 1) >= self->marks_size) {
if (self->num_marks >= self->marks_size) {
size_t alloc;
/* Use the size_t type to check for overflow. */