Commit 194ca8e
Ahmed Magdy Ali
gh-150505: fix data race in Unpickler_set_memo under free-threading
Unpickler_set_memo modified self->memo and self->memo_size without any
critical section, allowing concurrent threads to race on the same
Unpickler instance. Wrap the memo population loop and the pointer swap
in Py_BEGIN_CRITICAL_SECTION/Py_END_CRITICAL_SECTION to serialize
access.1 parent 9242700 commit 194ca8e
3 files changed
Lines changed: 52 additions & 6 deletions
File tree
- Lib/test
- Misc/NEWS.d/next/Library
- Modules
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
808 | 808 | | |
809 | 809 | | |
810 | 810 | | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
811 | 825 | | |
812 | 826 | | |
813 | 827 | | |
| |||
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7786 | 7786 | | |
7787 | 7787 | | |
7788 | 7788 | | |
| 7789 | + | |
| 7790 | + | |
7789 | 7791 | | |
7790 | 7792 | | |
7791 | 7793 | | |
7792 | 7794 | | |
7793 | 7795 | | |
7794 | | - | |
| 7796 | + | |
| 7797 | + | |
7795 | 7798 | | |
7796 | 7799 | | |
7797 | | - | |
7798 | | - | |
| 7800 | + | |
| 7801 | + | |
| 7802 | + | |
| 7803 | + | |
7799 | 7804 | | |
7800 | 7805 | | |
7801 | 7806 | | |
7802 | | - | |
| 7807 | + | |
| 7808 | + | |
7803 | 7809 | | |
| 7810 | + | |
7804 | 7811 | | |
7805 | | - | |
| 7812 | + | |
| 7813 | + | |
| 7814 | + | |
| 7815 | + | |
7806 | 7816 | | |
| 7817 | + | |
| 7818 | + | |
| 7819 | + | |
| 7820 | + | |
7807 | 7821 | | |
7808 | 7822 | | |
7809 | 7823 | | |
| |||
7812 | 7826 | | |
7813 | 7827 | | |
7814 | 7828 | | |
7815 | | - | |
| 7829 | + | |
| 7830 | + | |
| 7831 | + | |
| 7832 | + | |
| 7833 | + | |
| 7834 | + | |
7816 | 7835 | | |
7817 | 7836 | | |
| 7837 | + | |
| 7838 | + | |
| 7839 | + | |
| 7840 | + | |
| 7841 | + | |
| 7842 | + | |
| 7843 | + | |
| 7844 | + | |
| 7845 | + | |
| 7846 | + | |
7818 | 7847 | | |
7819 | 7848 | | |
7820 | 7849 | | |
| |||
0 commit comments