Commit bddf3d47 authored by Steve Holme's avatar Steve Holme
Browse files

url: Simplified setstropt_userpwd() following recent changes

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.
parent e99c81a0
Loading
Loading
Loading
Loading
+7 −23
Original line number Diff line number Diff line
@@ -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 */
  /* 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));
  }

  if(!result) {
    /* store username part of option */
    if(user_storage) {