diff Objects/bufferobject.c @ 48114:c4d24fc8ba8a legacy-trunk

Security patches from Apple: prevent int overflow when allocating memory
author Neal Norwitz <nnorwitz@gmail.com>
date Thu, 31 Jul 2008 17:17:14 +0000
parents 1c964ed35ef9
children 0bf6c42ab4e4
line wrap: on
line diff
--- a/Objects/bufferobject.c	Thu Jul 31 15:15:45 2008 +0000
+++ b/Objects/bufferobject.c	Thu Jul 31 17:17:14 2008 +0000
@@ -431,6 +431,10 @@
 		count = 0;
 	if (!get_buf(self, &ptr, &size, ANY_BUFFER))
 		return NULL;
+	if (count > PY_SSIZE_T_MAX / size) {
+		PyErr_SetString(PyExc_MemoryError, "result too large");
+		return NULL;
+	}
 	ob = PyString_FromStringAndSize(NULL, size * count);
 	if ( ob == NULL )
 		return NULL;