Mercurial > cpython-lru_cache-weakref
changeset 57638:63169cb9e49a legacy-trunk
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.
| author | Mark Dickinson <dickinsm@gmail.com> |
|---|---|
| date | Thu, 10 Dec 2009 10:36:32 +0000 |
| parents | 8b6689c0e5a6 |
| children | 9211a5d7d0b4 |
| files | Include/pymem.h |
| diffstat | 1 files changed, 2 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/Include/pymem.h Thu Dec 10 10:27:09 2009 +0000 +++ b/Include/pymem.h Thu Dec 10 10:36:32 2009 +0000 @@ -71,9 +71,9 @@ 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
