summaryrefslogtreecommitdiff
path: root/ext/mbstring
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2015-01-03 21:55:29 -0800
committerStanislav Malyshev <stas@php.net>2015-01-03 21:55:29 -0800
commit599d7a3968cfaf0317adca52bfb0e73ba3e3f52a (patch)
treee8c640c8b85f52fc3bdcd8019a460ba639e9f816 /ext/mbstring
parentdf4aaa81ef5a65056e09958a5ab62fa8d296bfc1 (diff)
downloadphp-git-599d7a3968cfaf0317adca52bfb0e73ba3e3f52a.tar.gz
Fix bug #68706 - uninitalized pointer in mbstring
Diffstat (limited to 'ext/mbstring')
-rw-r--r--ext/mbstring/mbstring.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index d816ee52e7..90a94d6594 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -3890,7 +3890,7 @@ static int _php_mbstr_parse_mail_headers(HashTable *ht, const char *str, size_t
size_t icnt;
int state = 0;
int crlf_state = -1;
- char *token;
+ char *token = NULL;
size_t token_pos;
zend_string *fld_name, *fld_val;
@@ -3917,8 +3917,9 @@ static int _php_mbstr_parse_mail_headers(HashTable *ht, const char *str, size_t
}
if (state == 0 || state == 1) {
- fld_name = zend_string_init(token, token_pos, 0);
-
+ if(token) {
+ fld_name = zend_string_init(token, token_pos, 0);
+ }
state = 2;
} else {
token_pos++;
@@ -3982,7 +3983,9 @@ static int _php_mbstr_parse_mail_headers(HashTable *ht, const char *str, size_t
case 3:
if (crlf_state == -1) {
- fld_val = zend_string_init(token, token_pos, 0);
+ if(token) {
+ fld_val = zend_string_init(token, token_pos, 0);
+ }
if (fld_name != NULL && fld_val != NULL) {
zval val;
@@ -4029,8 +4032,9 @@ out:
state = 3;
}
if (state == 3) {
- fld_val = zend_string_init(token, 0, 0);
-
+ if(token) {
+ fld_val = zend_string_init(token, token_pos, 0);
+ }
if (fld_name != NULL && fld_val != NULL) {
zval val;
/* FIXME: some locale free implementation is