mirror of https://github.com/python/cpython
gh-126018: Avoid aborting due to unnecessary assert in `sys.audit` (#126020)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
This commit is contained in:
parent
dc76a4ad3c
commit
80eec52fc8
|
@ -567,6 +567,17 @@ def test_winapi_createnamedpipe(pipe_name):
|
|||
_winapi.CreateNamedPipe(pipe_name, _winapi.PIPE_ACCESS_DUPLEX, 8, 2, 0, 0, 0, 0)
|
||||
|
||||
|
||||
def test_assert_unicode():
|
||||
import sys
|
||||
sys.addaudithook(lambda *args: None)
|
||||
try:
|
||||
sys.audit(9)
|
||||
except TypeError:
|
||||
pass
|
||||
else:
|
||||
raise RuntimeError("Expected sys.audit(9) to fail.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from test.support import suppress_msvcrt_asserts
|
||||
|
||||
|
|
|
@ -307,5 +307,12 @@ class AuditTest(unittest.TestCase):
|
|||
|
||||
self.assertEqual(actual, expected)
|
||||
|
||||
def test_assert_unicode(self):
|
||||
# See gh-126018
|
||||
returncode, _, stderr = self.run_python("test_assert_unicode")
|
||||
if returncode:
|
||||
self.fail(stderr)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Fix a crash in :func:`sys.audit` when passing a non-string as first argument
|
||||
and Python was compiled in debug mode.
|
|
@ -519,7 +519,6 @@ sys_audit(PyObject *self, PyObject *const *args, Py_ssize_t argc)
|
|||
}
|
||||
|
||||
assert(args[0] != NULL);
|
||||
assert(PyUnicode_Check(args[0]));
|
||||
|
||||
if (!should_audit(tstate->interp)) {
|
||||
Py_RETURN_NONE;
|
||||
|
|
Loading…
Reference in New Issue