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