summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2010-04-02 23:59:41 (GMT)
committerBenjamin Peterson <benjamin@python.org>2010-04-02 23:59:41 (GMT)
commit6caf7ff505ca8d3369043e7909cb24a61908bed9 (patch)
treebf91abf59e5c19f438f1a7a036237ab39c1495be /Objects
parent4564c08b26f3eb036ca758be5ca76af117e69e5b (diff)
downloadcpython-6caf7ff505ca8d3369043e7909cb24a61908bed9.zip
cpython-6caf7ff505ca8d3369043e7909cb24a61908bed9.tar.gz
cpython-6caf7ff505ca8d3369043e7909cb24a61908bed9.tar.bz2
always check _PyString_Resize for error
also normalize how this error is checked
Diffstat (limited to 'Objects')
-rw-r--r--Objects/stringobject.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 8434bf8..abb1d3a 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -395,7 +395,8 @@ PyString_FromFormatV(const char *format, va_list vargs)
}
end:
- _PyString_Resize(&string, s - PyString_AS_STRING(string));
+ if (_PyString_Resize(&string, s - PyString_AS_STRING(string)))
+ return NULL;
return string;
}
@@ -747,8 +748,8 @@ PyObject *PyString_DecodeEscape(const char *s,
UTF-8 bytes may follow. */
}
}
- if (p-buf < newlen)
- _PyString_Resize(&v, p - buf);
+ if (p-buf < newlen && _PyString_Resize(&v, p - buf))
+ goto failed;
return v;
failed:
Py_DECREF(v);
@@ -977,8 +978,8 @@ PyString_Repr(PyObject *obj, int smartquotes)
assert(newsize - (p - PyString_AS_STRING(v)) >= 1);
*p++ = quote;
*p = '\0';
- _PyString_Resize(
- &v, (p - PyString_AS_STRING(v)));
+ if (_PyString_Resize(&v, (p - PyString_AS_STRING(v))))
+ return NULL;
return v;
}
}
@@ -2301,8 +2302,8 @@ string_translate(PyStringObject *self, PyObject *args)
return input_obj;
}
/* Fix the size of the resulting string */
- if (inlen > 0)
- _PyString_Resize(&result, output - output_start);
+ if (inlen > 0 && _PyString_Resize(&result, output - output_start))
+ return NULL;
return result;
}
@@ -4254,7 +4255,7 @@ PyString_Format(PyObject *format, PyObject *args)
if (--rescnt < 0) {
rescnt = fmtcnt + 100;
reslen += rescnt;
- if (_PyString_Resize(&result, reslen) < 0)
+ if (_PyString_Resize(&result, reslen))
return NULL;
res = PyString_AS_STRING(result)
+ reslen - rescnt;
@@ -4581,7 +4582,7 @@ PyString_Format(PyObject *format, PyObject *args)
Py_XDECREF(temp);
return PyErr_NoMemory();
}
- if (_PyString_Resize(&result, reslen) < 0) {
+ if (_PyString_Resize(&result, reslen)) {
Py_XDECREF(temp);
return NULL;
}
@@ -4649,7 +4650,8 @@ PyString_Format(PyObject *format, PyObject *args)
if (args_owned) {
Py_DECREF(args);
}
- _PyString_Resize(&result, reslen - rescnt);
+ if (_PyString_Resize(&result, reslen - rescnt))
+ return NULL;
return result;
#ifdef Py_USING_UNICODE