diff Objects/bufferobject.c @ 10427:e6799a855af7 legacy-trunk

Added check for negative offset for PyBuffer_FromObject and check for negative size for PyBuffer_FromMemory. Greg Stein.
author Guido van Rossum <guido@python.org>
date Fri, 19 Mar 1999 19:04:25 +0000
parents 083efa076366
children 62781914fadb
line wrap: on
line diff
--- a/Objects/bufferobject.c	Thu Mar 18 19:08:47 1999 +0000
+++ b/Objects/bufferobject.c	Fri Mar 19 19:04:25 1999 +0000
@@ -55,6 +55,12 @@
 {
 	PyBufferObject * b;
 
+	if ( size < 0 ) {
+		PyErr_SetString(PyExc_ValueError,
+				"size must be zero or positive");
+		return NULL;
+	}
+
 	b = PyObject_NEW(PyBufferObject, &PyBuffer_Type);
 	if ( b == NULL )
 		return NULL;
@@ -83,6 +89,12 @@
 	void *p;
 	int count;
 
+	if ( offset < 0 ) {
+		PyErr_SetString(PyExc_ValueError,
+				"offset must be zero or positive");
+		return NULL;
+	}
+
 	if ( (*pb->bf_getsegcount)(base, NULL) != 1 )
 	{
 		PyErr_SetString(PyExc_TypeError, "single-segment buffer object expected");
@@ -92,7 +104,7 @@
 		return NULL;
 
 	/* apply constraints to the start/end */
-	if ( size == Py_END_OF_BUFFER )
+	if ( size == Py_END_OF_BUFFER || size < 0 )
 		size = count;
 	if ( offset > count )
 		offset = count;