diff options
| author | Stanislav Malyshev <stas@php.net> | 2015-01-03 21:55:29 -0800 |
|---|---|---|
| committer | Stanislav Malyshev <stas@php.net> | 2015-01-03 21:55:29 -0800 |
| commit | 599d7a3968cfaf0317adca52bfb0e73ba3e3f52a (patch) | |
| tree | e8c640c8b85f52fc3bdcd8019a460ba639e9f816 /ext/mbstring | |
| parent | df4aaa81ef5a65056e09958a5ab62fa8d296bfc1 (diff) | |
| download | php-git-599d7a3968cfaf0317adca52bfb0e73ba3e3f52a.tar.gz | |
Fix bug #68706 - uninitalized pointer in mbstring
Diffstat (limited to 'ext/mbstring')
| -rw-r--r-- | ext/mbstring/mbstring.c | 16 |
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 |
