Commit d760e05
committed
Fix use-after-free in tl_pending_args across subinterpreters
Clear tl_pending_args to NULL whenever tl_pending_callback is set to
false. Previously, the thread-local pointer was left dangling after
callback completion. When a dirty scheduler thread later handled a
different subinterpreter's code, Py_XDECREF on the stale pointer
would attempt to free memory from the wrong allocator.1 parent 47c4a5c commit d760e05
3 files changed
+61
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
563 | 563 | | |
564 | 564 | | |
565 | 565 | | |
| 566 | + | |
566 | 567 | | |
567 | 568 | | |
568 | 569 | | |
| |||
575 | 576 | | |
576 | 577 | | |
577 | 578 | | |
| 579 | + | |
578 | 580 | | |
579 | 581 | | |
580 | 582 | | |
| |||
610 | 612 | | |
611 | 613 | | |
612 | 614 | | |
| 615 | + | |
613 | 616 | | |
614 | 617 | | |
615 | 618 | | |
| |||
811 | 814 | | |
812 | 815 | | |
813 | 816 | | |
| 817 | + | |
814 | 818 | | |
815 | 819 | | |
816 | 820 | | |
| |||
1290 | 1294 | | |
1291 | 1295 | | |
1292 | 1296 | | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
1293 | 1310 | | |
1294 | 1311 | | |
1295 | 1312 | | |
| |||
1553 | 1570 | | |
1554 | 1571 | | |
1555 | 1572 | | |
| 1573 | + | |
1556 | 1574 | | |
1557 | 1575 | | |
1558 | 1576 | | |
| |||
1561 | 1579 | | |
1562 | 1580 | | |
1563 | 1581 | | |
1564 | | - | |
1565 | | - | |
1566 | | - | |
| 1582 | + | |
| 1583 | + | |
| 1584 | + | |
| 1585 | + | |
| 1586 | + | |
| 1587 | + | |
1567 | 1588 | | |
1568 | 1589 | | |
1569 | 1590 | | |
| |||
2649 | 2670 | | |
2650 | 2671 | | |
2651 | 2672 | | |
| 2673 | + | |
2652 | 2674 | | |
2653 | 2675 | | |
2654 | 2676 | | |
| |||
2717 | 2739 | | |
2718 | 2740 | | |
2719 | 2741 | | |
| 2742 | + | |
2720 | 2743 | | |
2721 | 2744 | | |
2722 | 2745 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
306 | 306 | | |
307 | 307 | | |
308 | 308 | | |
| 309 | + | |
309 | 310 | | |
310 | 311 | | |
311 | 312 | | |
| |||
393 | 394 | | |
394 | 395 | | |
395 | 396 | | |
| 397 | + | |
396 | 398 | | |
397 | 399 | | |
398 | 400 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
119 | 137 | | |
120 | 138 | | |
121 | 139 | | |
| |||
2280 | 2298 | | |
2281 | 2299 | | |
2282 | 2300 | | |
| 2301 | + | |
2283 | 2302 | | |
2284 | 2303 | | |
2285 | 2304 | | |
| |||
2298 | 2317 | | |
2299 | 2318 | | |
2300 | 2319 | | |
| 2320 | + | |
| 2321 | + | |
| 2322 | + | |
2301 | 2323 | | |
2302 | 2324 | | |
2303 | 2325 | | |
| |||
2382 | 2404 | | |
2383 | 2405 | | |
2384 | 2406 | | |
| 2407 | + | |
2385 | 2408 | | |
2386 | 2409 | | |
2387 | 2410 | | |
| |||
2399 | 2422 | | |
2400 | 2423 | | |
2401 | 2424 | | |
| 2425 | + | |
| 2426 | + | |
| 2427 | + | |
2402 | 2428 | | |
2403 | 2429 | | |
2404 | 2430 | | |
| |||
2867 | 2893 | | |
2868 | 2894 | | |
2869 | 2895 | | |
| 2896 | + | |
2870 | 2897 | | |
2871 | 2898 | | |
2872 | 2899 | | |
2873 | 2900 | | |
2874 | 2901 | | |
2875 | 2902 | | |
| 2903 | + | |
2876 | 2904 | | |
2877 | 2905 | | |
2878 | 2906 | | |
| |||
2921 | 2949 | | |
2922 | 2950 | | |
2923 | 2951 | | |
| 2952 | + | |
2924 | 2953 | | |
2925 | 2954 | | |
2926 | 2955 | | |
2927 | 2956 | | |
2928 | 2957 | | |
2929 | 2958 | | |
| 2959 | + | |
2930 | 2960 | | |
2931 | 2961 | | |
2932 | 2962 | | |
| |||
2951 | 2981 | | |
2952 | 2982 | | |
2953 | 2983 | | |
| 2984 | + | |
| 2985 | + | |
| 2986 | + | |
2954 | 2987 | | |
2955 | 2988 | | |
2956 | 2989 | | |
| |||
0 commit comments