From d0e2e6dfe2905c4d28addcf4113f2e5f5cc679e3 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Wed, 20 Dec 2006 23:36:43 +0000 Subject: [PATCH] fix potential leak, improve length checks --- ext/standard/string.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ext/standard/string.c b/ext/standard/string.c index f51da3f5a9..d92d257367 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -6154,7 +6154,7 @@ int php_u_tag_find(UChar *tag, int len, UChar *set, int set_len) UChar *norm, *n; int state = 0, done = 0; - if (!len) { + if (len <= 0) { return 0; } @@ -6205,7 +6205,13 @@ int php_u_tag_find(UChar *tag, int len, UChar *set, int set_len) int php_tag_find(char *tag, int len, char *set) { char c, *n, *t; int state=0, done=0; - char *norm = emalloc(len+1); + char *norm; + + if (len <= 0) { + return 0; + } + + norm = emalloc(len+1); n = norm; t = tag; @@ -6215,9 +6221,6 @@ int php_tag_find(char *tag, int len, char *set) { and turn any into just and any into */ - if (!len) { - return 0; - } while (!done) { switch (c) { case '<': -- 2.50.1