changeset: 93455:2d203a0b7908 parent: 93452:8111ee79d27c parent: 93454:45e8aed69767 user: Serhiy Storchaka date: Mon Nov 10 11:25:50 2014 +0200 files: Misc/NEWS Modules/fcntlmodule.c description: Issue #22821: Fixed fcntl() with integer argument on 64-bit big-endian platforms. diff -r 8111ee79d27c -r 2d203a0b7908 Misc/NEWS --- a/Misc/NEWS Mon Nov 10 10:21:03 2014 +0200 +++ b/Misc/NEWS Mon Nov 10 11:25:50 2014 +0200 @@ -183,6 +183,9 @@ Library ------- +- Issue #22821: Fixed fcntl() with integer argument on 64-bit big-endian + platforms. + - Issue #21650: Add an `--sort-keys` option to json.tool CLI. - Issues #814253, #9179: Group references and conditional group references now diff -r 8111ee79d27c -r 2d203a0b7908 Modules/fcntlmodule.c --- a/Modules/fcntlmodule.c Mon Nov 10 10:21:03 2014 +0200 +++ b/Modules/fcntlmodule.c Mon Nov 10 11:25:50 2014 +0200 @@ -60,7 +60,7 @@ fcntl_fcntl_impl(PyModuleDef *module, int fd, int code, PyObject *arg) /*[clinic end generated code: output=afc5bfa74a03ef0d input=4850c13a41e86930]*/ { - int int_arg = 0; + unsigned int int_arg = 0; int ret; char *str; Py_ssize_t len; @@ -88,7 +88,7 @@ PyErr_Clear(); parse_result = PyArg_Parse(arg, - "l;fcntl requires a file or file descriptor," + "I;fcntl requires a file or file descriptor," " an integer and optionally a third integer or a string", &int_arg); if (!parse_result) { @@ -97,7 +97,7 @@ } Py_BEGIN_ALLOW_THREADS - ret = fcntl(fd, code, int_arg); + ret = fcntl(fd, code, (int)int_arg); Py_END_ALLOW_THREADS if (ret < 0) { PyErr_SetFromErrno(PyExc_IOError);