We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent acb222c commit c33efa8Copy full SHA for c33efa8
Modules/_stat.c
@@ -295,9 +295,21 @@ _PyLong_AsMode_t(PyObject *op)
295
unsigned long value;
296
mode_t mode;
297
298
- value = PyLong_AsUnsignedLong(op);
299
- if ((value == (unsigned long)-1) && PyErr_Occurred())
+ if (PyLong_Check(op)) {
+ value = PyLong_AsUnsignedLong(op);
300
+ }
301
+ else {
302
+ op = PyNumber_Index(op);
303
+ if (op == NULL) {
304
+ return (mode_t)-1;
305
306
307
+ Py_DECREF(op);
308
309
+
310
+ if ((value == (unsigned long)-1) && PyErr_Occurred()) {
311
return (mode_t)-1;
312
313
314
mode = (mode_t)value;
315
if ((unsigned long)mode != value) {
0 commit comments