summaryrefslogtreecommitdiff
path: root/ext/standard/metaphone.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2014-02-23 19:04:40 +0800
committerXinchen Hui <laruence@gmail.com>2014-02-23 19:04:40 +0800
commitbd3bd63571af24ecd8872d4b3ab888baef7d7024 (patch)
tree9efd56ba9a6b026ca9c9f76cb16a30fc7febf290 /ext/standard/metaphone.c
parent6a856d4aa94db68942ac489abaf621dd387d9753 (diff)
downloadphp-git-bd3bd63571af24ecd8872d4b3ab888baef7d7024.tar.gz
Fixed wrong zend_string usage in ext/standard/tests/strings/bug47443.php
Diffstat (limited to 'ext/standard/metaphone.c')
-rw-r--r--ext/standard/metaphone.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/ext/standard/metaphone.c b/ext/standard/metaphone.c
index 290b63eb91..9d22868b8c 100644
--- a/ext/standard/metaphone.c
+++ b/ext/standard/metaphone.c
@@ -144,7 +144,7 @@ static char Lookahead(char *word, int how_far)
* could be one though; or more too). */
#define Phonize(c) { \
if (p_idx >= max_buffer_len) { \
- *phoned_word = STR_REALLOC(*phoned_word, 1 + max_buffer_len, 0); \
+ *phoned_word = STR_REALLOC(*phoned_word, 2 * sizeof(char) + max_buffer_len, 0); \
max_buffer_len += 2; \
} \
(*phoned_word)->val[p_idx++] = c; \
@@ -153,7 +153,8 @@ static char Lookahead(char *word, int how_far)
/* Slap a null character on the end of the phoned word */
#define End_Phoned_Word { \
if (p_idx == max_buffer_len) { \
- *phoned_word = STR_REALLOC(*phoned_word, max_buffer_len, 0); \
+ *phoned_word = STR_REALLOC(*phoned_word, 1 * sizeof(char) + max_buffer_len, 0); \
+ max_buffer_len += 1; \
} \
(*phoned_word)->val[p_idx] = '\0'; \
(*phoned_word)->len = p_idx; \
@@ -188,10 +189,10 @@ static int metaphone(unsigned char *word, int word_len, long max_phonemes, zend_
/*-- Allocate memory for our phoned_phrase --*/
if (max_phonemes == 0) { /* Assume largest possible */
max_buffer_len = word_len;
- *phoned_word = safe_emalloc(sizeof(char), word_len, 1);
+ *phoned_word = STR_ALLOC(sizeof(char) * word_len + 1, 0);
} else {
max_buffer_len = max_phonemes;
- *phoned_word = safe_emalloc(sizeof(char), max_phonemes, 1);
+ *phoned_word = STR_ALLOC(sizeof(char) * max_phonemes + 1, 0);
}