diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2009-12-10 10:39:08 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2009-12-10 10:39:08 (GMT) |
commit | 629dfe28f5bdf12b767ae8b35241247e3baadbb4 (patch) | |
tree | 75bce1a5e09a2f94c3a483ff4b910eb8e23c0705 /Include | |
parent | 3f9afd816de4067b8277bfe0241cf15d34b13e47 (diff) | |
download | cpython-629dfe28f5bdf12b767ae8b35241247e3baadbb4.zip cpython-629dfe28f5bdf12b767ae8b35241247e3baadbb4.tar.gz cpython-629dfe28f5bdf12b767ae8b35241247e3baadbb4.tar.bz2 |
Merged revisions 76740 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r76740 | mark.dickinson | 2009-12-10 10:36:32 +0000 (Thu, 10 Dec 2009) | 8 lines
Replace the size check for PyMem_MALLOC and PyMem_REALLOC with an almost
equivalent[*] check that doesn't produce compiler warnings about a 'x < 0'
check on an unsigned type.
[*] it's equivalent for inputs of type size_t or Py_ssize_t, or any smaller
unsigned or signed integer type.
........
Diffstat (limited to 'Include')
-rw-r--r-- | Include/pymem.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Include/pymem.h b/Include/pymem.h index e2dfe0d..966c0f5 100644 --- a/Include/pymem.h +++ b/Include/pymem.h @@ -71,9 +71,9 @@ PyAPI_FUNC(void) PyMem_Free(void *); pymalloc. To solve these problems, allocate an extra byte. */ /* Returns NULL to indicate error if a negative size or size larger than Py_ssize_t can represent is supplied. Helps prevents security holes. */ -#define PyMem_MALLOC(n) (((n) < 0 || (n) > PY_SSIZE_T_MAX) ? NULL \ +#define PyMem_MALLOC(n) ((size_t)(n) > (size_t)PY_SSIZE_T_MAX ? NULL \ : malloc((n) ? (n) : 1)) -#define PyMem_REALLOC(p, n) (((n) < 0 || (n) > PY_SSIZE_T_MAX) ? NULL \ +#define PyMem_REALLOC(p, n) ((size_t)(n) > (size_t)PY_SSIZE_T_MAX ? NULL \ : realloc((p), (n) ? (n) : 1)) #define PyMem_FREE free |