]> granicus.if.org Git - php/commitdiff
"key" has to be zero-delimited
authorHartmut Holzgraefe <hholzgra@php.net>
Mon, 24 Feb 2003 13:35:07 +0000 (13:35 +0000)
committerHartmut Holzgraefe <hholzgra@php.net>
Mon, 24 Feb 2003 13:35:07 +0000 (13:35 +0000)
ext/yp/yp.c

index 7fda2f0e04f96b08339055c217d7dac33a6a35c6..8706ccffb23e32e1924f438cd1873be1da713fa2 100644 (file)
@@ -295,8 +295,17 @@ static int php_foreach_cat (int instatus, char *inkey, int inkeylen, char *inval
 
        if (!err)
        {
-               if (inkeylen)
-                       add_assoc_stringl_ex((zval *) indata,inkey,inkeylen,inval,invallen,1);
+               if (inkeylen) {
+                       char *key = malloc(inkeylen+1);
+                       if(key) {
+                               strncpy(key, inkey, inkeylen);
+                               key[inkeylen] = '\0';
+                               add_assoc_stringl_ex((zval *) indata, key, inkeylen+1, inval, invallen, 1);
+                               free(key);
+                       } else {
+                               php_error(E_WARNING, "Can't allocate %d bytes for key buffer in yp_cat()");
+                       }
+               }
 
                return 0;
        }