]> granicus.if.org Git - python/commitdiff
imp_load_module(): correct and comment the sense of the test for '+'
authorGuido van Rossum <guido@python.org>
Thu, 30 May 2002 17:33:07 +0000 (17:33 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 30 May 2002 17:33:07 +0000 (17:33 +0000)
in the mode (it's forbidden).

Python/import.c

index 112f7f628c1350a449c38f44df5829158db57b12..8c9cd2f0f520ce19d8e10ab168259bd91bd64991 100644 (file)
@@ -2408,11 +2408,16 @@ imp_load_module(PyObject *self, PyObject *args)
                              &name, &fob, &pathname,
                              &suffix, &mode, &type))
                return NULL;
-       if (*mode &&
-           !(*mode == 'r' || *mode == 'U' || strchr(mode, '+'))) {
+       if (*mode) {
+               /* Mode must start with 'r' or 'U' and must not contain '+'.
+                  Implicit in this test is the assumption that the mode
+                  may contain other modifiers like 'b' or 't'. */
+
+               if (!(*mode == 'r' || *mode == 'U') || strchr(mode, '+')) {
                        PyErr_Format(PyExc_ValueError,
                                     "invalid file open mode %.200s", mode);
                        return NULL;
+               }
        }
        if (fob == Py_None)
                fp = NULL;