url: Simplified setstropt_userpwd() following recent changes
authorSteve Holme <steve_holme@hotmail.com>
Sat, 20 Apr 2013 19:01:40 +0000 (20:01 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sat, 20 Apr 2013 19:04:00 +0000 (20:04 +0100)
There is no need to perform separate clearing of data if a NULL option
pointer is passed in. Instead this operation can be performed by simply
not calling parse_login_details() and letting the rest of the code do
the work.

lib/url.c

index 4f995ab54936bbb0dfc1d1d5df932496a030aeab..8601ade6e4a717dd7fabc6a4fff5dda966e02a81 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -305,31 +305,15 @@ static CURLcode setstropt_userpwd(char *option, char **user_storage,
   char *passwdp = NULL;
   char *optionsp = NULL;
 
-  if(!option) {
-    /* we treat a NULL passed in as a hint to clear existing info */
-    if(user_storage) {
-      Curl_safefree(*user_storage);
-      *user_storage = (char *) NULL;
-    }
-
-    if(pwd_storage) {
-      Curl_safefree(*pwd_storage);
-      *pwd_storage = (char *) NULL;
-    }
-
-    if(options_storage) {
-      Curl_safefree(*options_storage);
-      *options_storage = (char *) NULL;
-    }
-
-    return CURLE_OK;
+  /* Parse the login details if specified. It not then we treat NULL as a hint
+     to clear the existing data */
+  if(option) {
+    result = parse_login_details(option, strlen(option),
+                                 (user_storage ? &userp : NULL),
+                                 (pwd_storage ? &passwdp : NULL),
+                                 (options_storage ? &optionsp : NULL));
   }
 
-  /* Parse the login details */
-  result = parse_login_details(option, strlen(option),
-                               (user_storage ? &userp : NULL),
-                               (pwd_storage ? &passwdp : NULL),
-                               (options_storage ? &optionsp : NULL));
   if(!result) {
     /* store username part of option */
     if(user_storage) {