From 77ca6c4c8483c22c6ba6200a94e9628671c82a3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Thu, 3 Jun 2004 12:47:26 +0000 Subject: [PATCH] Warn abou missing mutate flag to ioctl. Fixes #696535. --- Doc/whatsnew/whatsnew24.tex | 2 ++ Misc/NEWS | 2 ++ Modules/fcntlmodule.c | 8 +++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Doc/whatsnew/whatsnew24.tex b/Doc/whatsnew/whatsnew24.tex index a39497188aa..638eadb9eff 100644 --- a/Doc/whatsnew/whatsnew24.tex +++ b/Doc/whatsnew/whatsnew24.tex @@ -669,6 +669,8 @@ changes to your code: system ID in the wrong order. This has been corrected; applications relying on the wrong order need to be fixed. +\item \function{fcntl.ioctl} now warns if the mutate arg is omitted. + \end{itemize} diff --git a/Misc/NEWS b/Misc/NEWS index a4dd8a16708..304c3be92dc 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -214,6 +214,8 @@ Core and builtins Extension modules ----------------- +- fcntl.ioctl now warns if the mutate flag is not specified. + - nt now properly allows to refer to UNC roots, e.g. in nt.stat(). - the weakref module now supports additional objects: array.array, diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c index 9894c4307e0..43f17730323 100644 --- a/Modules/fcntlmodule.c +++ b/Modules/fcntlmodule.c @@ -108,7 +108,13 @@ fcntl_ioctl(PyObject *self, PyObject *args) char *arg; if (PyTuple_Size(args) == 3) { - /* warning goes here in 2.4 */ +#if (PY_MAJOR_VERSION>2) || (PY_MINOR_VERSION>=5) +#error Remove the warning, change mutate_arg to 1 +#endif + if (PyErr_Warn(PyExc_FutureWarning, + "ioctl with mutable buffer will mutate the buffer by default in 2.5" + ) < 0) + return NULL; mutate_arg = 0; } if (mutate_arg) {