Mercurial > cpython-lru_cache-weakref
diff Modules/_testbuffer.c @ 78859:7c007110d952
_testbuffer.c: In all current use cases of cmp_structure() dest->format and
src->format are either both NULL or both non-NULL. However, it is safer to
generalize the function. Found by Coverity.
| author | Stefan Krah <skrah@bytereef.org> |
|---|---|
| date | Thu, 06 Sep 2012 09:42:29 +0200 |
| parents | fa745ed89b7a |
| children | 12cbb5183d98 |
line wrap: on
line diff
--- a/Modules/_testbuffer.c Wed Sep 05 22:19:38 2012 -0700 +++ b/Modules/_testbuffer.c Thu Sep 06 09:42:29 2012 +0200 @@ -16,6 +16,7 @@ static const char *simple_fmt = "B"; PyObject *simple_format = NULL; #define SIMPLE_FORMAT(fmt) (fmt == NULL || strcmp(fmt, "B") == 0) +#define FIX_FORMAT(fmt) (fmt == NULL ? "B" : fmt) /**************************************************************************/ @@ -513,10 +514,8 @@ cmp_structure(Py_buffer *dest, Py_buffer *src) { Py_ssize_t i; - int same_fmt = ((dest->format == NULL && src->format == NULL) || \ - (strcmp(dest->format, src->format) == 0)); - - if (!same_fmt || + + if (strcmp(FIX_FORMAT(dest->format), FIX_FORMAT(src->format)) != 0 || dest->itemsize != src->itemsize || dest->ndim != src->ndim) return -1;
