Commit 4732806
committed
gh-151370: Fix marshal.dumps() crash on concurrent container mutation
An item's __buffer__() (PEP 688) runs Python while the list, dict or set is
being serialized, and that Python can mutate or free the container, causing a
use-after-free, an out-of-bounds access, or an abort. Keep the serialized
object alive across w_complex_object() and report a size change as a
RuntimeError.
Same family as gh-151295 (bytes.join).1 parent 65047f2 commit 4732806
3 files changed
Lines changed: 92 additions & 3 deletions
File tree
- Lib/test
- Misc/NEWS.d/next/Library
- Python
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
246 | 291 | | |
247 | 292 | | |
248 | 293 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
| 109 | + | |
109 | 110 | | |
110 | 111 | | |
111 | 112 | | |
| |||
489 | 490 | | |
490 | 491 | | |
491 | 492 | | |
492 | | - | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
493 | 497 | | |
| 498 | + | |
| 499 | + | |
494 | 500 | | |
495 | 501 | | |
496 | 502 | | |
| |||
603 | 609 | | |
604 | 610 | | |
605 | 611 | | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
606 | 617 | | |
607 | 618 | | |
608 | 619 | | |
| |||
621 | 632 | | |
622 | 633 | | |
623 | 634 | | |
| 635 | + | |
624 | 636 | | |
625 | 637 | | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
626 | 642 | | |
627 | 643 | | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
628 | 651 | | |
629 | 652 | | |
630 | 653 | | |
| |||
654 | 677 | | |
655 | 678 | | |
656 | 679 | | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
657 | 687 | | |
658 | 688 | | |
659 | 689 | | |
| |||
669 | 699 | | |
670 | 700 | | |
671 | 701 | | |
672 | | - | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
673 | 710 | | |
674 | 711 | | |
675 | 712 | | |
676 | | - | |
677 | 713 | | |
678 | 714 | | |
679 | 715 | | |
| |||
1941 | 1977 | | |
1942 | 1978 | | |
1943 | 1979 | | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
1944 | 1984 | | |
1945 | 1985 | | |
1946 | 1986 | | |
| |||
0 commit comments