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

Reply via email to