]> granicus.if.org Git - curl/commitdiff
Fix an OOM handling problem
authorYang Tse <yangsita@gmail.com>
Wed, 14 Oct 2009 18:11:36 +0000 (18:11 +0000)
committerYang Tse <yangsita@gmail.com>
Wed, 14 Oct 2009 18:11:36 +0000 (18:11 +0000)
src/main.c

index cbe3ee5fe4c78b2f9ab9374891611c55aa1f4783..16c3ed5323a89d4cb73bf11a3bfc3bb61ca284c1 100644 (file)
@@ -2360,18 +2360,16 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
                  encoded string */
               size_t outlen = nlen + strlen(enc) + 2;
               char *n = malloc(outlen);
-              if(!n)
+              if(!n) {
+                curl_free(enc);
                 return PARAM_NO_MEM;
+              }
               if (nlen > 0) /* only append '=' if we have a name */
                 snprintf(n, outlen, "%.*s=%s", nlen, nextarg, enc);
               else
                 strcpy(n, enc);
               curl_free(enc);
-              if(n) {
-                postdata = n;
-              }
-              else
-                return PARAM_NO_MEM;
+              postdata = n;
             }
             else
               return PARAM_NO_MEM;