Commit c1bbd83a authored by Nick Coghlan's avatar Nick Coghlan

Merged revisions 70378 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70378 | nick.coghlan | 2009-03-15 13:24:46 +1000 (Sun, 15 Mar 2009) | 1 line

  Make marshalling errors a little more informative as to what went wrong
........
parent 5a7b007d
...@@ -550,7 +550,7 @@ r_object(RFILE *p) ...@@ -550,7 +550,7 @@ r_object(RFILE *p)
n = r_long(p); n = r_long(p);
if (n < -INT_MAX || n > INT_MAX) { if (n < -INT_MAX || n > INT_MAX) {
PyErr_SetString(PyExc_ValueError, PyErr_SetString(PyExc_ValueError,
"bad marshal data"); "bad marshal data (long size out of range)");
retval = NULL; retval = NULL;
break; break;
} }
...@@ -566,7 +566,7 @@ r_object(RFILE *p) ...@@ -566,7 +566,7 @@ r_object(RFILE *p)
if (digit < 0) { if (digit < 0) {
Py_DECREF(ob); Py_DECREF(ob);
PyErr_SetString(PyExc_ValueError, PyErr_SetString(PyExc_ValueError,
"bad marshal data"); "bad marshal data (negative digit in long)");
ob = NULL; ob = NULL;
break; break;
} }
...@@ -682,7 +682,7 @@ r_object(RFILE *p) ...@@ -682,7 +682,7 @@ r_object(RFILE *p)
case TYPE_STRING: case TYPE_STRING:
n = r_long(p); n = r_long(p);
if (n < 0 || n > INT_MAX) { 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; retval = NULL;
break; break;
} }
...@@ -707,7 +707,7 @@ r_object(RFILE *p) ...@@ -707,7 +707,7 @@ r_object(RFILE *p)
n = r_long(p); n = r_long(p);
if (n < 0 || n > INT_MAX) { 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; retval = NULL;
break; break;
} }
...@@ -732,7 +732,7 @@ r_object(RFILE *p) ...@@ -732,7 +732,7 @@ r_object(RFILE *p)
case TYPE_TUPLE: case TYPE_TUPLE:
n = r_long(p); n = r_long(p);
if (n < 0 || n > INT_MAX) { 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; retval = NULL;
break; break;
} }
...@@ -746,7 +746,7 @@ r_object(RFILE *p) ...@@ -746,7 +746,7 @@ r_object(RFILE *p)
if ( v2 == NULL ) { if ( v2 == NULL ) {
if (!PyErr_Occurred()) if (!PyErr_Occurred())
PyErr_SetString(PyExc_TypeError, PyErr_SetString(PyExc_TypeError,
"NULL object in marshal data"); "NULL object in marshal data for tuple");
Py_DECREF(v); Py_DECREF(v);
v = NULL; v = NULL;
break; break;
...@@ -759,7 +759,7 @@ r_object(RFILE *p) ...@@ -759,7 +759,7 @@ r_object(RFILE *p)
case TYPE_LIST: case TYPE_LIST:
n = r_long(p); n = r_long(p);
if (n < 0 || n > INT_MAX) { 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; retval = NULL;
break; break;
} }
...@@ -773,7 +773,7 @@ r_object(RFILE *p) ...@@ -773,7 +773,7 @@ r_object(RFILE *p)
if ( v2 == NULL ) { if ( v2 == NULL ) {
if (!PyErr_Occurred()) if (!PyErr_Occurred())
PyErr_SetString(PyExc_TypeError, PyErr_SetString(PyExc_TypeError,
"NULL object in marshal data"); "NULL object in marshal data for list");
Py_DECREF(v); Py_DECREF(v);
v = NULL; v = NULL;
break; break;
...@@ -811,7 +811,7 @@ r_object(RFILE *p) ...@@ -811,7 +811,7 @@ r_object(RFILE *p)
case TYPE_FROZENSET: case TYPE_FROZENSET:
n = r_long(p); n = r_long(p);
if (n < 0 || n > INT_MAX) { 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; retval = NULL;
break; break;
} }
...@@ -825,7 +825,7 @@ r_object(RFILE *p) ...@@ -825,7 +825,7 @@ r_object(RFILE *p)
if ( v2 == NULL ) { if ( v2 == NULL ) {
if (!PyErr_Occurred()) if (!PyErr_Occurred())
PyErr_SetString(PyExc_TypeError, PyErr_SetString(PyExc_TypeError,
"NULL object in marshal data"); "NULL object in marshal data for set");
Py_DECREF(v); Py_DECREF(v);
v = NULL; v = NULL;
break; break;
...@@ -920,7 +920,7 @@ r_object(RFILE *p) ...@@ -920,7 +920,7 @@ r_object(RFILE *p)
default: default:
/* Bogus data got written, which isn't ideal. /* Bogus data got written, which isn't ideal.
This will let you keep working and recover. */ 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; retval = NULL;
break; break;
...@@ -939,7 +939,7 @@ read_object(RFILE *p) ...@@ -939,7 +939,7 @@ read_object(RFILE *p)
} }
v = r_object(p); v = r_object(p);
if (v == NULL && !PyErr_Occurred()) 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; return v;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment