diff options
author | Nick Coghlan <ncoghlan@gmail.com> | 2009-03-15 03:24:46 (GMT) |
---|---|---|
committer | Nick Coghlan <ncoghlan@gmail.com> | 2009-03-15 03:24:46 (GMT) |
commit | 8eba5ed0d9e1b62b7b1276fcf7b323e39aacd9d5 (patch) | |
tree | 6b3a81a5884191e3f3119493e667bfe154025021 /Python/marshal.c | |
parent | 2ace4cf813a13f1be8466d48f280ffd0bbe0f5a4 (diff) | |
download | cpython-8eba5ed0d9e1b62b7b1276fcf7b323e39aacd9d5.zip cpython-8eba5ed0d9e1b62b7b1276fcf7b323e39aacd9d5.tar.gz cpython-8eba5ed0d9e1b62b7b1276fcf7b323e39aacd9d5.tar.bz2 |
Make marshalling errors a little more informative as to what went wrong
Diffstat (limited to 'Python/marshal.c')
-rw-r--r-- | Python/marshal.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/Python/marshal.c b/Python/marshal.c index 140192f..3460bc3 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -576,7 +576,7 @@ r_object(RFILE *p) n = r_long(p); if (n < -INT_MAX || n > INT_MAX) { PyErr_SetString(PyExc_ValueError, - "bad marshal data"); + "bad marshal data (long size out of range)"); retval = NULL; break; } @@ -592,7 +592,7 @@ r_object(RFILE *p) if (digit < 0) { Py_DECREF(ob); PyErr_SetString(PyExc_ValueError, - "bad marshal data"); + "bad marshal data (negative digit in long)"); ob = NULL; break; } @@ -709,7 +709,7 @@ r_object(RFILE *p) case TYPE_STRING: n = r_long(p); if (n < 0 || n > INT_MAX) { - PyErr_SetString(PyExc_ValueError, "bad marshal data"); + PyErr_SetString(PyExc_ValueError, "bad marshal data (string size out of range)"); retval = NULL; break; } @@ -738,7 +738,7 @@ r_object(RFILE *p) case TYPE_STRINGREF: n = r_long(p); if (n < 0 || n >= PyList_GET_SIZE(p->strings)) { - PyErr_SetString(PyExc_ValueError, "bad marshal data"); + PyErr_SetString(PyExc_ValueError, "bad marshal data (string ref out of range)"); retval = NULL; break; } @@ -754,7 +754,7 @@ r_object(RFILE *p) n = r_long(p); if (n < 0 || n > INT_MAX) { - PyErr_SetString(PyExc_ValueError, "bad marshal data"); + PyErr_SetString(PyExc_ValueError, "bad marshal data (unicode size out of range)"); retval = NULL; break; } @@ -780,7 +780,7 @@ r_object(RFILE *p) case TYPE_TUPLE: n = r_long(p); if (n < 0 || n > INT_MAX) { - PyErr_SetString(PyExc_ValueError, "bad marshal data"); + PyErr_SetString(PyExc_ValueError, "bad marshal data (tuple size out of range)"); retval = NULL; break; } @@ -794,7 +794,7 @@ r_object(RFILE *p) if ( v2 == NULL ) { if (!PyErr_Occurred()) PyErr_SetString(PyExc_TypeError, - "NULL object in marshal data"); + "NULL object in marshal data for tuple"); Py_DECREF(v); v = NULL; break; @@ -807,7 +807,7 @@ r_object(RFILE *p) case TYPE_LIST: n = r_long(p); if (n < 0 || n > INT_MAX) { - PyErr_SetString(PyExc_ValueError, "bad marshal data"); + PyErr_SetString(PyExc_ValueError, "bad marshal data (list size out of range)"); retval = NULL; break; } @@ -821,7 +821,7 @@ r_object(RFILE *p) if ( v2 == NULL ) { if (!PyErr_Occurred()) PyErr_SetString(PyExc_TypeError, - "NULL object in marshal data"); + "NULL object in marshal data for list"); Py_DECREF(v); v = NULL; break; @@ -859,7 +859,7 @@ r_object(RFILE *p) case TYPE_FROZENSET: n = r_long(p); if (n < 0 || n > INT_MAX) { - PyErr_SetString(PyExc_ValueError, "bad marshal data"); + PyErr_SetString(PyExc_ValueError, "bad marshal data (set size out of range)"); retval = NULL; break; } @@ -873,7 +873,7 @@ r_object(RFILE *p) if ( v2 == NULL ) { if (!PyErr_Occurred()) PyErr_SetString(PyExc_TypeError, - "NULL object in marshal data"); + "NULL object in marshal data for set"); Py_DECREF(v); v = NULL; break; @@ -973,7 +973,7 @@ r_object(RFILE *p) default: /* Bogus data got written, which isn't ideal. This will let you keep working and recover. */ - PyErr_SetString(PyExc_ValueError, "bad marshal data"); + PyErr_SetString(PyExc_ValueError, "bad marshal data (unknown type code)"); retval = NULL; break; @@ -992,7 +992,7 @@ read_object(RFILE *p) } v = r_object(p); if (v == NULL && !PyErr_Occurred()) - PyErr_SetString(PyExc_TypeError, "NULL object in marshal data"); + PyErr_SetString(PyExc_TypeError, "NULL object in marshal data for object"); return v; } |