]> granicus.if.org Git - php/commitdiff
@- Fix bug with curl places extra data in the output. (medvitz@medvitz.net)
authorSterling Hughes <sterling@php.net>
Mon, 11 Sep 2000 03:33:14 +0000 (03:33 +0000)
committerSterling Hughes <sterling@php.net>
Mon, 11 Sep 2000 03:33:14 +0000 (03:33 +0000)
ext/curl/curl.c

index ff9c0bc2c74a0b3a93cea9af4852c753a020fb73..3575445b1102a631b3a395457af68f5e38776fc7 100644 (file)
@@ -348,6 +348,7 @@ PHP_FUNCTION(curl_exec)
        FILE *fp;
        char buf[4096];
        int b;
+       unsigned long pos = 0;
 
        CURLLS_FETCH();
        
@@ -408,8 +409,10 @@ PHP_FUNCTION(curl_exec)
                ret_data = emalloc((stat_sb.st_size+1)*sizeof(char));
                
                while ((b = fread(buf, 1, sizeof(buf), fp)) > 0) {
-                       strcat(ret_data, buf);
+                       memcpy(&(ret_data[pos]), buf, b);
+                       pos += b;
                }
+               ret_data[stat_sb.st_size - 1] = '\0';
                
                RETURN_STRINGL(ret_data, stat_sb.st_size, 0);