Skip to content

Commit

Permalink
Rectify previous commit, fixing also the uuid_mode range check
Browse files Browse the repository at this point in the history
  • Loading branch information
lelit committed Sep 10, 2017
1 parent 464d10d commit aaa93cc
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions rapidjson.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1083,11 +1083,12 @@ loads(PyObject* self, PyObject* args, PyObject* kwargs)
if (uuidModeObj == Py_None)
uuidMode = UM_NONE;
else if (PyLong_Check(uuidModeObj)) {
uuidMode = (UuidMode) PyLong_AsLong(uuidModeObj);
if (uuidMode < UM_NONE || uuidMode > UM_HEX) {
int mode = PyLong_AsLong(uuidModeObj);
if (mode < 0 || mode >= 1<<2) {
PyErr_SetString(PyExc_ValueError, "Invalid uuid_mode");
return NULL;
}
uuidMode = (UuidMode) mode;
}
else {
PyErr_SetString(PyExc_TypeError,
Expand All @@ -1100,11 +1101,12 @@ loads(PyObject* self, PyObject* args, PyObject* kwargs)
if (parseModeObj == Py_None)
parseMode = PM_NONE;
else if (PyLong_Check(parseModeObj)) {
parseMode = (ParseMode) PyLong_AsLong(parseModeObj);
if (parseMode < PM_NONE || parseMode > PM_TRAILING_COMMAS) {
int mode = PyLong_AsLong(parseModeObj);
if (mode < 0 || mode >= 1<<2) {
PyErr_SetString(PyExc_ValueError, "Invalid parse_mode");
return NULL;
}
parseMode = (ParseMode) mode;
}
else {
PyErr_SetString(PyExc_TypeError,
Expand Down Expand Up @@ -1403,11 +1405,12 @@ decoder_new(PyTypeObject* type, PyObject* args, PyObject* kwargs)
if (uuidModeObj == Py_None)
uuidMode = UM_NONE;
else if (PyLong_Check(uuidModeObj)) {
uuidMode = (UuidMode) PyLong_AsLong(uuidModeObj);
if (uuidMode < UM_NONE || uuidMode > UM_HEX) {
int mode = PyLong_AsLong(uuidModeObj);
if (mode < 0 || mode >= 1<<2) {
PyErr_SetString(PyExc_ValueError, "Invalid uuid_mode");
return NULL;
}
uuidMode = (UuidMode) mode;
}
else {
PyErr_SetString(PyExc_TypeError,
Expand All @@ -1420,11 +1423,12 @@ decoder_new(PyTypeObject* type, PyObject* args, PyObject* kwargs)
if (parseModeObj == Py_None)
parseMode = PM_NONE;
else if (PyLong_Check(parseModeObj)) {
parseMode = (ParseMode) PyLong_AsLong(parseModeObj);
if (parseMode < PM_NONE || parseMode > PM_TRAILING_COMMAS) {
int mode = PyLong_AsLong(parseModeObj);
if (mode < 0 || mode >= 1<<2) {
PyErr_SetString(PyExc_ValueError, "Invalid parse_mode");
return NULL;
}
parseMode = (ParseMode) mode;
}
else {
PyErr_SetString(PyExc_TypeError,
Expand Down

0 comments on commit aaa93cc

Please sign in to comment.