Browse Source

Issue #22821: Fixed fcntl() with integer argument on 64-bit big-endian

platforms.
pull/9921/head
Serhiy Storchaka 12 years ago
parent
commit
5a8dacf9c6
  1. 3
      Misc/NEWS
  2. 6
      Modules/fcntlmodule.c

3
Misc/NEWS

@ -183,6 +183,9 @@ Core and Builtins
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

6
Modules/fcntlmodule.c

@ -60,7 +60,7 @@ static PyObject *
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 @@ fcntl_fcntl_impl(PyModuleDef *module, int fd, int code, PyObject *arg)
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 @@ fcntl_fcntl_impl(PyModuleDef *module, int fd, int code, PyObject *arg)
}
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);

Loading…
Cancel
Save