]> granicus.if.org Git - php/commitdiff
Fix memory leak
authorPierrick Charron <pierrick@php.net>
Mon, 21 Nov 2011 02:44:28 +0000 (02:44 +0000)
committerPierrick Charron <pierrick@php.net>
Mon, 21 Nov 2011 02:44:28 +0000 (02:44 +0000)
ext/curl/interface.c

index 6b70df482e7708eb0cd9ba908f3ae541d83d1146..c27652cdb3ada649f051e48c156aa9bebdd7e72b 100644 (file)
@@ -2035,6 +2035,7 @@ string_copy:
                                        char  *string_key = NULL;
                                        uint   string_key_len;
                                        ulong  num_key;
+                                       int    numeric_key;
 
                                        SEPARATE_ZVAL(current);
                                        convert_to_string_ex(current);
@@ -2045,6 +2046,9 @@ string_copy:
                                        if(!string_key) {
                                                spprintf(&string_key, 0, "%ld", num_key);
                                                string_key_len = strlen(string_key)+1;
+                                               numeric_key = 1;
+                                       } else {
+                                               numeric_key = 0;
                                        }
 
                                        postval = Z_STRVAL_PP(current);
@@ -2088,6 +2092,10 @@ string_copy:
                                                                                         CURLFORM_CONTENTSLENGTH, (long)Z_STRLEN_PP(current),
                                                                                         CURLFORM_END);
                                        }
+
+                                       if (numeric_key) {
+                                               efree(string_key);
+                                       }
                                }
 
                                SAVE_CURL_ERROR(ch, error);