summaryrefslogtreecommitdiff
path: root/simplejson/_speedups.c
diff options
context:
space:
mode:
Diffstat (limited to 'simplejson/_speedups.c')
-rw-r--r--simplejson/_speedups.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/simplejson/_speedups.c b/simplejson/_speedups.c
index d61f270..a9a05e3 100644
--- a/simplejson/_speedups.c
+++ b/simplejson/_speedups.c
@@ -642,10 +642,13 @@ encoder_stringify_key(PyEncoderObject *s, PyObject *key)
}
else if (PyString_Check(key)) {
#if PY_MAJOR_VERSION >= 3
+ const char *encoding = JSON_ASCII_AS_STRING(s->encoding);
+ if (encoding == NULL)
+ return NULL;
return PyUnicode_Decode(
PyString_AS_STRING(key),
PyString_GET_SIZE(key),
- JSON_ASCII_AS_STRING(s->encoding),
+ encoding,
NULL);
#else /* PY_MAJOR_VERSION >= 3 */
Py_INCREF(key);
@@ -2599,6 +2602,8 @@ encoder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
s->encoding = JSON_ParseEncoding(encoding);
if (s->encoding == NULL)
goto bail;
+ if (JSON_ASCII_AS_STRING(s->encoding) == NULL)
+ goto bail;
Py_INCREF(indent);
s->indent = indent;
Py_INCREF(key_separator);