Skip to content

Commit 078da88

Browse files
authored
[3.12] gh-69214: Fix fcntl.ioctl() request type (#119498) (#119505)
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. (cherry picked from commit 92fab33)
1 parent 2b091b9 commit 078da88

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
@@ -108,7 +108,7 @@ fcntl_fcntl_impl(PyObject *module, int fd, int code, PyObject *arg)
108108
fcntl.ioctl
109109
110110
fd: fildes
111-
request as code: unsigned_int(bitwise=True)
111+
request as code: unsigned_long(bitwise=True)
112112
arg as ob_arg: object(c_default='NULL') = 0
113113
mutate_flag as mutate_arg: bool = True
114114
/
@@ -144,9 +144,9 @@ code.
144144
[clinic start generated code]*/
145145

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

0 commit comments

Comments
 (0)