From fa2889fbb12b98b93a5f555d78c6f35d24fe9e45 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Wed, 20 Dec 2006 19:08:23 +0000 Subject: return NULL right away if invalid length was passed --- Zend/zend_operators.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'Zend/zend_operators.h') diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h index a19e8f2892..626dbf010b 100644 --- a/Zend/zend_operators.h +++ b/Zend/zend_operators.h @@ -235,9 +235,13 @@ zend_memnstr(char *haystack, char *needle, int needle_len, char *end) static inline void *zend_memrchr(const void *s, int c, size_t n) { - register unsigned char *e = (unsigned char *)s + n; + register unsigned char *e; - for (e--; e >= (unsigned char *)s; e--) { + if (n <= 0) { + return NULL; + } + + for (e = (unsigned char *)s + n - 1; e >= (unsigned char *)s; e--) { if (*e == (unsigned char)c) { return (void *)e; } -- cgit v1.2.1