Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gh-101965: Fix usage of Py_EnterRecursiveCall return value in _bisectmodule.c#101966

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Conversation

OTheDev
Copy link
Contributor

@OTheDevOTheDev commentedFeb 16, 2023
edited by miss-islington
Loading

@OTheDevOTheDev changed the titlegh-101965: fix incorrect usage of the return value ofPy_EnterRecursiveCall() inmaingh-101965: fix incorrect usage of the return value ofPy_EnterRecursiveCall()Feb 16, 2023
@rhettingerrhettinger removed their request for reviewFebruary 17, 2023 02:40
@arhadthedevarhadthedev added extension-modulesC modules in the Modules dir topic-C-API labelsFeb 17, 2023
@erlend-aaslanderlend-aasland changed the titlegh-101965: fix incorrect usage of the return value ofPy_EnterRecursiveCall()gh-101965: Fix usage of Py_EnterRecursiveCall return value in _bisectmodule.cFeb 21, 2023
@arhadthedev
Copy link
Member

A news entry ofgh-102078 covers this PR too soskip-news.

erlend-aasland reacted with thumbs up emoji

@miss-islington
Copy link
Contributor

@OTheDev: Status check is done, and it's a failure or timed out ❌.

@arhadthedev
Copy link
Member

ASAN workerreports use-after-free indrop_gil() previously allocated byalloc_interpreter() and freed by_PyInterpreterState_IDDecref():

==17185==ERROR: AddressSanitizer: heap-use-after-free on address 0x6340005a0860 at pc 0x55e932d96946 bp 0x7f3d1f161e10 sp 0x7f3d1f161e00READ of size 4 at 0x6340005a0860 thread T8    #0 0x55e932d96945 in drop_gil Python/ceval_gil.c:299    #1 0x55e932dfb311 in _PyThreadState_DeleteCurrent Python/pystate.c:1462    #2 0x55e932e3694f in pythread_wrapper Python/thread_pthread.h:233    #3 0x7f3d2458b608 in start_thread /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477    #4 0x7f3d244b0132 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f132)0x6340005a0860 is located 96 bytes inside of 113016-byte region [0x6340005a0800,0x6340005bc178)freed by thread T0 here:    #0 0x7f3d2480d40f in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:122    #1 0x55e932dfc69d in _PyInterpreterState_IDDecref Python/pystate.c:1017    #2 0x55e932ab54ab in interpid_dealloc Objects/interpreteridobject.c:94    #3 0x55e932d830ba in Py_DECREF Include/object.h:561    #4 0x55e932d830ba in Py_XDECREF Include/object.h:654    #5 0x55e932d830ba in _PyFrame_Clear Python/frame.c:142    #6 0x55e9329027ab in clear_thread_frame Python/ceval.c:1652    #7 0x55e9329027ab in _PyEvalFrameClearAndPop Python/ceval.c:1677    #8 0x55e9329027ab in _PyEval_EvalFrameDefault Python/generated_cases.c.h:771    #9 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #10 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #11 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #12 0x55e932909a5e in do_call_core Python/ceval.c:2626    #13 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #14 0x55e932a451e4 in _PyObject_FastCallDictTstate Objects/call.c:143    #15 0x55e932a451e4 in _PyObject_Call_Prepend Objects/call.c:486    #16 0x55e932b9506c in slot_tp_call Objects/typeobject.c:8170    #17 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #18 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #19 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #20 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #21 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #22 0x55e932909a5e in do_call_core Python/ceval.c:2626    #23 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #24 0x55e932a451e4 in _PyObject_FastCallDictTstate Objects/call.c:143    #25 0x55e932a451e4 in _PyObject_Call_Prepend Objects/call.c:486    #26 0x55e932b9506c in slot_tp_call Objects/typeobject.c:8170    #27 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #28 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #29 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #30 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #31 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #32 0x55e932909a5e in do_call_core Python/ceval.c:2626    #33 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #34 0x55e932a451e4 in _PyObject_FastCallDictTstate Objects/call.c:143    #35 0x55e932a451e4 in _PyObject_Call_Prepend Objects/call.c:486    #36 0x55e932b9506c in slot_tp_call Objects/typeobject.c:8170    #37 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #38 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #39 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #40 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #41 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #42 0x55e932909a5e in do_call_core Python/ceval.c:2626    #43 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #44 0x55e932a451e4 in _PyObject_FastCallDictTstate Objects/call.c:143    #45 0x55e932a451e4 in _PyObject_Call_Prepend Objects/call.c:486previously allocated by thread T0 here:    #0 0x7f3d2480da06 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:153    #1 0x55e932df80bd in alloc_interpreter Python/pystate.c:602    #2 0x55e932df80bd in PyInterpreterState_New Python/pystate.c:701    #3 0x55e932df4686 in new_interpreter Python/pylifecycle.c:2001    #4 0x55e932df4686 in _Py_NewInterpreterFromConfig Python/pylifecycle.c:2071    #5 0x7f3d1f4a6f3c in interp_create Modules/_xxsubinterpretersmodule.c:560    #6 0x55e932b32db4 in cfunction_call Objects/methodobject.c:537    #7 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #8 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #9 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #10 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #11 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #12 0x55e932909a5e in do_call_core Python/ceval.c:2626    #13 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #14 0x55e932a451e4 in _PyObject_FastCallDictTstate Objects/call.c:143    #15 0x55e932a451e4 in _PyObject_Call_Prepend Objects/call.c:486    #16 0x55e932b9506c in slot_tp_call Objects/typeobject.c:8170    #17 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #18 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #19 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #20 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #21 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #22 0x55e932909a5e in do_call_core Python/ceval.c:2626    #23 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #24 0x55e932a451e4 in _PyObject_FastCallDictTstate Objects/call.c:143    #25 0x55e932a451e4 in _PyObject_Call_Prepend Objects/call.c:486    #26 0x55e932b9506c in slot_tp_call Objects/typeobject.c:8170    #27 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #28 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #29 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #30 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #31 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #32 0x55e932909a5e in do_call_core Python/ceval.c:2626    #33 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #34 0x55e932a451e4 in _PyObject_FastCallDictTstate Objects/call.c:143    #35 0x55e932a451e4 in _PyObject_Call_Prepend Objects/call.c:486    #36 0x55e932b9506c in slot_tp_call Objects/typeobject.c:8170    #37 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #38 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #39 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #40 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #41 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)Thread T8 created by T0 here:    #0 0x7f3d2473a815 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cc:208    #1 0x55e932e36cc2 in PyThread_start_new_thread Python/thread_pthread.h:280    #2 0x55e932f7276b in thread_PyThread_start_new_thread Modules/_threadmodule.c:1177    #3 0x55e932b32d94 in cfunction_call Objects/methodobject.c:548    #4 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #5 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #6 0x55e932d13ce4 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:88    #7 0x55e932d13ce4 in _PyEval_Vector Python/ceval.c:1710    #8 0x55e932d13ce4 in PyEval_EvalCode Python/ceval.c:576    #9 0x55e932e004d2 in run_eval_code_obj Python/pythonrun.c:1702    #10 0x55e932e006e1 in run_mod Python/pythonrun.c:1723    #11 0x55e932e0841d in PyRun_StringFlags Python/pythonrun.c:1592    #12 0x7f3d1f4a878f in _run_script Modules/_xxsubinterpretersmodule.c:459    #13 0x7f3d1f4a878f in _run_script_in_interpreter Modules/_xxsubinterpretersmodule.c:515    #14 0x7f3d1f4a878f in interp_run_string Modules/_xxsubinterpretersmodule.c:741    #15 0x55e932b32db4 in cfunction_call Objects/methodobject.c:537    #16 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #17 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #18 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #19 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #20 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #21 0x55e932909a5e in do_call_core Python/ceval.c:2626    #22 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #23 0x55e932a451e4 in _PyObject_FastCallDictTstate Objects/call.c:143    #24 0x55e932a451e4 in _PyObject_Call_Prepend Objects/call.c:486    #25 0x55e932b9506c in slot_tp_call Objects/typeobject.c:8170    #26 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #27 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #28 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #29 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #30 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #31 0x55e932909a5e in do_call_core Python/ceval.c:2626    #32 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #33 0x55e932a451e4 in _PyObject_FastCallDictTstate Objects/call.c:143    #34 0x55e932a451e4 in _PyObject_Call_Prepend Objects/call.c:486    #35 0x55e932b9506c in slot_tp_call Objects/typeobject.c:8170    #36 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #37 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #38 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #39 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #40 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #41 0x55e932909a5e in do_call_core Python/ceval.c:2626    #42 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #43 0x55e932a451e4 in _PyObject_FastCallDictTstate Objects/call.c:143    #44 0x55e932a451e4 in _PyObject_Call_Prepend Objects/call.c:486    #45 0x55e932b9506c in slot_tp_call Objects/typeobject.c:8170    #46 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #47 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #48 0x55e932a4b608 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #49 0x55e932a4b608 in method_vectorcall Objects/classobject.c:89    #50 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #51 0x55e932909a5e in do_call_core Python/ceval.c:2626    #52 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #53 0x55e932a451e4 in _PyObject_FastCallDictTstate Objects/call.c:143    #54 0x55e932a451e4 in _PyObject_Call_Prepend Objects/call.c:486    #55 0x55e932b9506c in slot_tp_call Objects/typeobject.c:8170    #56 0x55e932a401cf in _PyObject_MakeTpCall Objects/call.c:216    #57 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #58 0x55e932f87ef5 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #59 0x55e932f87ef5 in partial_vectorcall Modules/_functoolsmodule.c:[230](https://github.com/python/cpython/actions/runs/4230678718/jobs/7348285060#step:13:231)    #60 0x55e932a42bf7 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #61 0x55e932a42bf7 in PyObject_Vectorcall Objects/call.c:301    #62 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #63 0x55e932a4b789 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #64 0x55e932a4b789 in method_vectorcall Objects/classobject.c:59    #65 0x55e932a43a8d in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f8a8d)    #66 0x55e932909a5e in do_call_core Python/ceval.c:2626    #67 0x55e932909a5e in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3707    #68 0x55e932d13ce4 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:88    #69 0x55e932d13ce4 in _PyEval_Vector Python/ceval.c:1710    #70 0x55e932d13ce4 in PyEval_EvalCode Python/ceval.c:576    #71 0x55e932d0c2c1 in builtin_exec_impl Python/bltinmodule.c:1076    #72 0x55e932d0c2c1 in builtin_exec Python/clinic/bltinmodule.c.h:586    #73 0x55e932b33e7b in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438    #74 0x55e932a42bf7 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92    #75 0x55e932a42bf7 in PyObject_Vectorcall Objects/call.c:301    #76 0x55e9328faef1 in _PyEval_EvalFrameDefault Python/generated_cases.c.h:3086    #77 0x55e932a4399e in PyObject_Call (/home/runner/work/cpython/cpython/python+0x3f899e)    #78 0x55e932e648db in pymain_run_module Modules/main.c:300    #79 0x55e932e65e59 in pymain_run_python Modules/main.c:604    #80 0x55e932e67b28 in Py_RunMain Modules/main.c:689    #81 0x55e932e67b28 in pymain_main Modules/main.c:719    #82 0x55e932e67b28 in Py_BytesMain Modules/main.c:743    #83 0x7f3d[243](https://github.com/python/cpython/actions/runs/4230678718/jobs/7348285060#step:13:244)b5082 in __libc_start_main ../csu/libc-start.c:308SUMMARY: AddressSanitizer: heap-use-after-free Python/ceval_gil.c:[299](https://github.com/python/cpython/actions/runs/4230678718/jobs/7348285060#step:13:300) in drop_gilShadow bytes around the buggy address:  0x0c68800ac0b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa  0x0c68800ac0c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa  0x0c68800ac0d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa  0x0c68800ac0e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa  0x0c68800ac0f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa=>0x0c68800ac100: fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd fd  0x0c68800ac110: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd  0x0c68800ac120: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd  0x0c68800ac130: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd  0x0c68800ac140: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd  0x0c68800ac150: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fdShadow byte legend (one shadow byte represents 8 application bytes):  Addressable:           00  Partially addressable: 01 02 03 04 05 06 07   Heap left redzone:       fa  Freed heap region:       fd  Stack left redzone:      f1  Stack mid redzone:       f2  Stack right redzone:     f3  Stack after return:      f5  Stack use after scope:   f8  Global redzone:          f9  Global init order:       f6  Poisoned by user:        f7  Container overflow:      fc  Array cookie:            ac  Intra object redzone:    bb  ASan internal:           fe  Left alloca redzone:     ca  Right alloca redzone:    cb  Shadow gap:              cc==17185==ABORTING

@miss-islington
Copy link
Contributor

Status check is done, and it's a success ✅.

@miss-islingtonmiss-islington merged commit0f7a972 intopython:mainFeb 21, 2023
@OTheDev
Copy link
ContributorAuthor

Thanks@erlend-aasland and@arhadthedev for the help here! Appreciate it!

erlend-aasland reacted with heart emoji

@erlend-aasland
Copy link
Contributor

Thanks for the PR!

Oleg: I re-ran and ASAN succeeded, so it's probably a flaky test :(

arhadthedev and OTheDev reacted with thumbs up emoji

@erlend-aasland
Copy link
Contributor

@iritkatriel, I say we backport this to 3.11 and 3.10.

@iritkatriel
Copy link
Member

Agreed.

@erlend-aaslanderlend-aasland added needs backport to 3.10only security fixes needs backport to 3.11only security fixes labelsFeb 21, 2023
@miss-islington
Copy link
Contributor

Thanks@OTheDev for the PR 🌮🎉.. I'm working now to backport this PR to: 3.10.
🐍🍒⛏🤖

@miss-islington
Copy link
Contributor

Thanks@OTheDev for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11.
🐍🍒⛏🤖

@miss-islington
Copy link
Contributor

Sorry,@OTheDev, I could not cleanly backport this to3.11 due to a conflict.
Please backport usingcherry_picker on command line.
cherry_picker 0f7a9725300e750947159409abbf5722a4a79f8b 3.11

@miss-islingtonmiss-islington self-assigned thisFeb 21, 2023
@miss-islington
Copy link
Contributor

Sorry@OTheDev, I had trouble checking out the3.10 backport branch.
Please retry by removing and re-adding the "needs backport to 3.10" label.
Alternatively, you can backport usingcherry_picker on the command line.
cherry_picker 0f7a9725300e750947159409abbf5722a4a79f8b 3.10

@erlend-aasland
Copy link
Contributor

@OTheDev, can you fix the backports? See the devguide if you don't know how to do it.

@OTheDev
Copy link
ContributorAuthor

@erlend-aasland Sure, I can work on this in a couple of hours!

erlend-aasland reacted with thumbs up emoji

@OTheDev
Copy link
ContributorAuthor

@erlend-aasland It looks likePy_EnterRecursiveCall() is not in_bisectmodule.c in 3.11 and 3.10, so I think a backport isn't needed?

erlend-aasland reacted with thumbs up emoji

@erlend-aaslanderlend-aasland removed needs backport to 3.10only security fixes needs backport to 3.11only security fixes labelsFeb 21, 2023
@erlend-aasland
Copy link
Contributor

Yeah, looks like Dennis added them recently. No backport, then! :)

OTheDev reacted with thumbs up emoji

carljm added a commit to carljm/cpython that referenced this pull requestFeb 23, 2023
* main: (76 commits)  Fix syntax error in struct doc example (python#102160)pythongh-99108: Import MD5 and SHA1 from HACL* (python#102089)pythonGH-101777: `queue.rst`: use 2 spaces after a period to be consistent. (python#102143)  Few coverage nitpicks for the cmath module (python#102067)pythonGH-100982: Restrict `FOR_ITER_RANGE` to a single instruction to allow instrumentation. (pythonGH-101985)pythongh-102135: Update turtle docs to rename wikipedia demo to rosette (python#102137)pythongh-99942: python.pc on android/cygwin should link to libpython per configure.ac (pythonGH-100356)pythongh-95672 fix typo SkitTest to SkipTest (pythongh-102119)pythongh-101936: Update the default value of fp from io.StringIO to io.BytesIO (pythongh-102100)pythongh-102008: simplify test_except_star by using sys.exception() instead of sys.exc_info() (python#102009)pythongh-101903: Remove obsolete undefs for previously removed macros Py_EnterRecursiveCall and Py_LeaveRecursiveCall (python#101923)pythongh-100556: Improve clarity of `or` docs (python#100589)pythongh-101777: Make `PriorityQueue` docs slightly clearer (python#102026)pythongh-101965: Fix usage of Py_EnterRecursiveCall return value in _bisectmodule.c (pythonGH-101966)pythongh-101578: Amend exception docs (python#102057)pythongh-101961 fileinput.hookcompressed should not set the encoding value for the binary mode (pythongh-102068)pythongh-102056: Fix a few bugs in error handling of exception printing code (python#102078)pythongh-102011: use sys.exception() instead of sys.exc_info() in docs where possible (python#102012)pythongh-101566: Sync with zipp 3.14. (pythonGH-102018)pythonGH-99818: improve the documentation for zipfile.Path and Traversable (pythonGH-101589)  ...
python-sidebar pushed a commit to python-sidebar/Python-Documentation-Fork-With-TOC that referenced this pull requestSep 1, 2024
python-sidebar pushed a commit to python-sidebar/Python-Documentation-Fork-With-TOC that referenced this pull requestSep 1, 2024
JelleZijlstra pushed a commit to JelleZijlstra/cpython that referenced this pull requestSep 10, 2024
@OTheDevOTheDev deleted the fix-incorrect-Py_EnterRecursiveCall-usage branchJanuary 28, 2025 03:57
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@iritkatrieliritkatrieliritkatriel left review comments

@erlend-aaslanderlend-aaslanderlend-aasland approved these changes

Assignees

@miss-islingtonmiss-islington

Labels
extension-modulesC modules in the Modules dirskip newstopic-C-API
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

Py_EnterRecursiveCall()/_Py_EnterRecursiveCall() return value misused in a number of places
7 participants
@OTheDev@arhadthedev@miss-islington@erlend-aasland@iritkatriel@bedevere-bot@hauntsaninja

[8]ページ先頭

©2009-2025 Movatter.jp