com php-src: Fixed get_browser(): ext/standard/browsc ap.c

From: Date: Mon, 17 Mar 2014 20:55:25 +0000
Subject: com php-src: Fixed get_browser(): ext/standard/browsc ap.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-77612@lists.php.net to get a copy of this message
Commit: 292c01d890725cb5dc1018abbee262ed03013293 Author: Dmitry Stogov <dmitry@zend.com> Tue, 18 Mar 2014 00:55:25 +0400 Parents: 53a63dbd7d7c331e93973332594cdda554da7608 Branches: phpng Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=292c01d890725cb5dc1018abbee262ed03013293 Log: Fixed get_browser() Changed paths: M ext/standard/browscap.c Diff: diff --git a/ext/standard/browscap.c b/ext/standard/browscap.c index 0ce985a..e4d3c56 100644 --- a/ext/standard/browscap.c +++ b/ext/standard/browscap.c @@ -81,19 +81,20 @@ static void convert_browscap_pattern(zval *pattern, int persistent) /* {{{ */ int i, j=0; char *t; zend_string *res; + char *lc_pattern; // TODO: overflow check??? //??? t = (char *) safe_pemalloc(Z_STRLEN_P(pattern), 2, 5, persistent); res = STR_ALLOC(Z_STRLEN_P(pattern) * 2 + 5, persistent); t = res->val; - php_strtolower(Z_STRVAL_P(pattern), Z_STRLEN_P(pattern)); + lc_pattern = zend_str_tolower_dup(Z_STRVAL_P(pattern), Z_STRLEN_P(pattern)); t[j++] = '\xA7'; /* section sign */ t[j++] = '^'; for (i=0; i<Z_STRLEN_P(pattern); i++, j++) { - switch (Z_STRVAL_P(pattern)[i]) { + switch (lc_pattern[i]) { case '?': t[j] = '.'; break; @@ -122,7 +123,7 @@ static void convert_browscap_pattern(zval *pattern, int persistent) /* {{{ */ t[j] = '\xA7'; break; default: - t[j] = Z_STRVAL_P(pattern)[i]; + t[j] = lc_pattern[i]; break; } } @@ -133,6 +134,7 @@ static void convert_browscap_pattern(zval *pattern, int persistent) /* {{{ */ t[j]=0; res->len = j; Z_STR_P(pattern) = res; + efree(lc_pattern); } /* }}} */

« previous php.cvs (#77612) next »