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:
parent
c406d5cd74
commit
86b89916d1
|
@ -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')
|
||||
|
|
|
@ -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. */
|
||||
|
|
Loading…
Reference in New Issue