diff --git a/Misc/NEWS b/Misc/NEWS index c2814a0e925..db55df1fdc0 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -62,6 +62,9 @@ Core and Builtins Library ------- +- Issue #16305: Fix a segmentation fault occurring when interrupting + math.factorial. + - Issue #16116: Fix include and library paths to be correct when building C extensions in venvs. diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c index d693da15738..3fa52d0403a 100644 --- a/Modules/mathmodule.c +++ b/Modules/mathmodule.c @@ -1381,14 +1381,13 @@ factorial_odd_part(unsigned long n) Py_DECREF(outer); outer = tmp; } - - goto done; + Py_DECREF(inner); + return outer; error: Py_DECREF(outer); - done: Py_DECREF(inner); - return outer; + return NULL; } /* Lookup table for small factorial values */