]> granicus.if.org Git - curl/commitdiff
url: Fixed memory leak in setstropt_userpwd()
authorSteve Holme <steve_holme@hotmail.com>
Sat, 20 Apr 2013 17:40:13 +0000 (18:40 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sat, 20 Apr 2013 17:40:13 +0000 (18:40 +0100)
setstropt_userpwd() was calling setstropt() in commit fddb7b44a79d to
set each of the login details which would duplicate the strings and
subsequently cause a memory leak.

lib/url.c

index d54d49b9e61497942f27d58fd54962a319b7dac2..7b12372893e645f95e818e98c270169b47ba9f6d 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -333,15 +333,18 @@ static CURLcode setstropt_userpwd(char *option, char **user_storage,
   if(!result) {
     /* store username part of option */
     if(user_storage)
-      setstropt(user_storage, userp);
+      Curl_safefree(*user_storage);
+      *user_storage = userp;
 
     /* store password part of option */
     if(pwd_storage)
-      setstropt(pwd_storage, passwdp);
+      Curl_safefree(*pwd_storage);
+      *pwd_storage = passwdp;
 
     /* store options part of option */
     if(options_storage)
-      setstropt(options_storage, optionsp);
+      Curl_safefree(*options_storage);
+      *options_storage = optionsp;
   }
 
   return result;