From c7c01ab1e5415b772c68e15f1aba51e520010830 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Tue, 26 Nov 2019 16:27:50 -0800 Subject: [PATCH] bpo-38922: Raise code.__new__ audit event when code object replace() is called (GH-17394) --- .../2019-11-26-12-20-34.bpo-38922.i6ja-i.rst | 2 ++ Objects/codeobject.c | 7 +++++++ 2 files changed, 9 insertions(+) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-11-26-12-20-34.bpo-38922.i6ja-i.rst diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-11-26-12-20-34.bpo-38922.i6ja-i.rst b/Misc/NEWS.d/next/Core and Builtins/2019-11-26-12-20-34.bpo-38922.i6ja-i.rst new file mode 100644 index 00000000000..a7af652e5a5 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2019-11-26-12-20-34.bpo-38922.i6ja-i.rst @@ -0,0 +1,2 @@ +Calling ``replace`` on a code object now raises the ``code.__new__`` audit +event. diff --git a/Objects/codeobject.c b/Objects/codeobject.c index 39bf6fc6f22..f0b62ec9414 100644 --- a/Objects/codeobject.c +++ b/Objects/codeobject.c @@ -641,6 +641,13 @@ code_replace_impl(PyCodeObject *self, int co_argcount, #undef CHECK_INT_ARG + if (PySys_Audit("code.__new__", "OOOiiiiii", + co_code, co_filename, co_name, co_argcount, + co_posonlyargcount, co_kwonlyargcount, co_nlocals, + co_stacksize, co_flags) < 0) { + return NULL; + } + return (PyObject *)PyCode_NewWithPosOnlyArgs( co_argcount, co_posonlyargcount, co_kwonlyargcount, co_nlocals, co_stacksize, co_flags, (PyObject*)co_code, co_consts, co_names,