]> granicus.if.org Git - python/commitdiff
Check "sep" and "end" for stringness in Print().
authorGeorg Brandl <georg@python.org>
Thu, 30 Nov 2006 22:46:03 +0000 (22:46 +0000)
committerGeorg Brandl <georg@python.org>
Thu, 30 Nov 2006 22:46:03 +0000 (22:46 +0000)
Python/bltinmodule.c

index 1a91296723870bc2e63cee7513c99b3d42a9824a..8d7147b12814dce25cccb22621b9b6486c892368 100644 (file)
@@ -1429,7 +1429,20 @@ builtin_print(PyObject *self, PyObject *args, PyObject *kwds)
        if (file == NULL || file == Py_None)
                file = PySys_GetObject("stdout");
 
-       /* XXX Verify that sep and end are None, NULL or strings. */
+       if (sep && sep != Py_None && !PyString_Check(sep) &&
+           !PyUnicode_Check(sep)) {
+               PyErr_Format(PyExc_TypeError,
+                            "sep must be None, str or unicode, not %.200s",
+                            sep->ob_type->tp_name);
+               return NULL;
+       }
+       if (end && end != Py_None && !PyString_Check(end) &&
+           !PyUnicode_Check(end)) {
+               PyErr_Format(PyExc_TypeError,
+                            "end must be None, str or unicode, not %.200s",
+                            end->ob_type->tp_name);
+               return NULL;
+       }
 
        for (i = 0; i < PyTuple_Size(args); i++) {
                if (i > 0) {