Kaydet (Commit) 86b89916 authored tarafından Sergey Fedoseev's avatar Sergey Fedoseev Kaydeden (comit) Serhiy Storchaka

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

Previously marks stack was upsized even there was space for additional item.
üst c406d5cd
......@@ -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. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment