Commit 08286d52 authored by Zackery Spytz's avatar Zackery Spytz Committed by Steve Dower

bpo-37316: mmap.mmap() passes the wrong variable to PySys_Audit() (GH-14152)

Also, add a missing call to va_end() in PySys_Audit().
parent 08970cb0
......@@ -261,6 +261,13 @@ def test_cantrace():
assertSequenceEqual(["call"] * 4, traced)
def test_mmap():
import mmap
with TestHook() as hook:
mmap.mmap(-1, 8)
assertEqual(hook.seen[0][1][:2], (-1, 8))
if __name__ == "__main__":
from test.libregrtest.setup import suppress_msvcrt_asserts
suppress_msvcrt_asserts(False)
......
......@@ -74,6 +74,9 @@ class AuditTest(unittest.TestCase):
def test_cantrace(self):
self.do_test("test_cantrace")
def test_mmap(self):
self.do_test("test_mmap")
if __name__ == "__main__":
unittest.main()
Fix the :c:func:`PySys_Audit` call in :class:`mmap.mmap`.
......@@ -1154,7 +1154,7 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
}
if (PySys_Audit("mmap.__new__", "ini" _Py_PARSE_OFF_T,
fileno, map_size, access, offset) < 0) {
fd, map_size, access, offset) < 0) {
return NULL;
}
......
......@@ -182,6 +182,7 @@ PySys_Audit(const char *event, const char *argFormat, ...)
va_list args;
va_start(args, argFormat);
eventArgs = Py_VaBuildValue(argFormat, args);
va_end(args);
if (eventArgs && !PyTuple_Check(eventArgs)) {
PyObject *argTuple = PyTuple_Pack(1, eventArgs);
Py_DECREF(eventArgs);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment