]> granicus.if.org Git - python/commitdiff
Merged revisions 81849 via svnmerge from
authorVictor Stinner <victor.stinner@haypocalc.com>
Tue, 8 Jun 2010 21:46:32 +0000 (21:46 +0000)
committerVictor Stinner <victor.stinner@haypocalc.com>
Tue, 8 Jun 2010 21:46:32 +0000 (21:46 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r81849 | victor.stinner | 2010-06-08 23:45:51 +0200 (mar., 08 juin 2010) | 7 lines

  PyArg_Parse*("Z#") raises an error for unknown type

  instead of ignoring the error and leave the pointer to the string and the size
  unchanged (not initialized).

  Fix also the type in the error message of "Z", "Z#" and "Y" formats.
........

Python/getargs.c

index dec8602bf1c6a0a8bc7b04363a09522c71609954..272ce19a971b7d9a6cbd857a5891f590abf579d0 100644 (file)
@@ -1048,6 +1048,8 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
                 *p = PyUnicode_AS_UNICODE(arg);
                 STORE_SIZE(PyUnicode_GET_SIZE(arg));
             }
+            else
+                return converterr("str or None", arg, msgbuf, bufsize);
             format++;
         } else {
             Py_UNICODE **p = va_arg(*p_va, Py_UNICODE **);
@@ -1057,8 +1059,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
             else if (PyUnicode_Check(arg))
                 *p = PyUnicode_AS_UNICODE(arg);
             else
-                return converterr("string or None",
-                                  arg, msgbuf, bufsize);
+                return converterr("str or None", arg, msgbuf, bufsize);
         }
         break;
     }
@@ -1253,7 +1254,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
         if (PyByteArray_Check(arg))
             *p = arg;
         else
-            return converterr("buffer", arg, msgbuf, bufsize);
+            return converterr("bytearray", arg, msgbuf, bufsize);
         break;
     }