com php-src: Fixed get_browser(): ext/standard/browsc ap.c
| From: | Dmitry Stogov | 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);
}
/* }}} */