sas Fri May 30 08:00:08 2003 EDT
Modified files: (Branch: PHP_4_3)
/php4/ext/ircg ircg.c
Log:
Make tokenizer binary safe
Index: php4/ext/ircg/ircg.c
diff -u php4/ext/ircg/ircg.c:1.137.2.6 php4/ext/ircg/ircg.c:1.137.2.7
--- php4/ext/ircg/ircg.c:1.137.2.6 Thu May 15 08:30:11 2003
+++ php4/ext/ircg/ircg.c Fri May 30 08:00:07 2003
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ircg.c,v 1.137.2.6 2003/05/15 12:30:11 sas Exp $ */
+/* $Id: ircg.c,v 1.137.2.7 2003/05/30 12:00:07 sas Exp $ */
/* {{{ includes */
@@ -540,7 +540,7 @@
#define NEW_TOKEN(a, b) t = realloc(t, sizeof(token_t) * (++n)); t[n-1].code=a;
t[n-1].para.b
-static void token_compiler(const char *fmt, format_msg_t *f)
+static void token_compiler(const char *fmt, size_t fmtlen, format_msg_t *f)
{
const char *p, *pe;
const char *q;
@@ -560,7 +560,7 @@
}
p = fmt;
- pe = fmt + strlen(p);
+ pe = fmt + fmtlen;
do {
q = p;
@@ -1806,9 +1806,9 @@
for (i = 0; i < NO_FMTS; i++) {
if (zend_hash_index_find(h, i, (void **) &arg) == SUCCESS) {
convert_to_string_ex(arg);
- token_compiler(Z_STRVAL_PP(arg), &fmt_msgs.fmt_msgs[i]);
+ token_compiler(Z_STRVAL_PP(arg), Z_STRLEN_PP(arg),
&fmt_msgs.fmt_msgs[i]);
} else
- token_compiler("", &fmt_msgs.fmt_msgs[i]);
+ token_compiler("", 0, &fmt_msgs.fmt_msgs[i]);
}
@@ -1915,7 +1915,7 @@
while (zend_hash_get_current_key_ex(Z_ARRVAL_PP(array), &str, &str_len, &num,
0, &pos) == HASH_KEY_IS_STRING) {
zend_hash_get_current_data_ex(Z_ARRVAL_PP(array), (void **) &val,
&pos);
convert_to_string_ex(val);
- token_compiler(Z_STRVAL_PP(val), &fmt);
+ token_compiler(Z_STRVAL_PP(val), Z_STRLEN_PP(val), &fmt);
zend_hash_add(&conn->ctcp_msgs, str, str_len - 1, &fmt,
sizeof(fmt), NULL);
@@ -2330,7 +2330,7 @@
#endif
for (i = 0; i < NO_FMTS; i++) {
- token_compiler(fmt_msgs_default[i],
&fmt_msgs_default_compiled.fmt_msgs[i]);
+ token_compiler(fmt_msgs_default[i], strlen(fmt_msgs_default[i]),
&fmt_msgs_default_compiled.fmt_msgs[i]);
}
zend_hash_init(&h_fmt_msgs, 0, NULL, fmt_msgs_dtor, 1);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php