Skip to content

Commit 92fab33

Browse files
authored
gh-69214: Fix fcntl.ioctl() request type (#119498)
Use an 'unsigned long' instead of an 'unsigned int' for the request parameter of fcntl.ioctl() to support requests larger than UINT_MAX.
1 parent b48a3db commit 92fab33

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Fix ``fcntl.ioctl()`` *request* parameter: use an ``unsigned long`` instead of
2+
an ``unsigned int`` for the *request* parameter of :func:`fcntl.ioctl` to
3+
support requests larger than ``UINT_MAX``. Patch by Victor Stinner.

Modules/clinic/fcntlmodule.c.h

+6-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/fcntlmodule.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ fcntl_fcntl_impl(PyObject *module, int fd, int code, PyObject *arg)
112112
fcntl.ioctl
113113
114114
fd: fildes
115-
request as code: unsigned_int(bitwise=True)
115+
request as code: unsigned_long(bitwise=True)
116116
arg as ob_arg: object(c_default='NULL') = 0
117117
mutate_flag as mutate_arg: bool = True
118118
/
@@ -148,9 +148,9 @@ code.
148148
[clinic start generated code]*/
149149

150150
static PyObject *
151-
fcntl_ioctl_impl(PyObject *module, int fd, unsigned int code,
151+
fcntl_ioctl_impl(PyObject *module, int fd, unsigned long code,
152152
PyObject *ob_arg, int mutate_arg)
153-
/*[clinic end generated code: output=7f7f5840c65991be input=967b4a4cbeceb0a8]*/
153+
/*[clinic end generated code: output=3d8eb6828666cea1 input=cee70f6a27311e58]*/
154154
{
155155
#define IOCTL_BUFSZ 1024
156156
/* We use the unsigned non-checked 'I' format for the 'code' parameter

0 commit comments

Comments
 (0)