]> granicus.if.org Git - python/commitdiff
Issue #24683: Fixed a crash in _json.make_encoder() called with non-dict 1st argument.
authorSerhiy Storchaka <storchaka@gmail.com>
Sun, 26 Jul 2015 06:07:53 +0000 (09:07 +0300)
committerSerhiy Storchaka <storchaka@gmail.com>
Sun, 26 Jul 2015 06:07:53 +0000 (09:07 +0300)
Modules/_json.c

index 121126d5ed7823b83f35852f9b9ac9a5a6745718..5dac038902cb6a3843b19a72c75ea6b369e7939d 100644 (file)
@@ -1850,6 +1850,13 @@ encoder_init(PyObject *self, PyObject *args, PyObject *kwds)
     if (allow_nan < 0)
         return -1;
 
+    if (markers != Py_None && !PyDict_Check(markers)) {
+        PyErr_Format(PyExc_TypeError,
+                     "make_encoder() argument 1 must be dict or None, "
+                     "not %.200s", Py_TYPE(markers)->tp_name);
+        return -1;
+    }
+
     s->markers = markers;
     s->defaultfn = defaultfn;
     s->encoder = encoder;