Skip to content

Commit

Permalink
setopt: remove check for 'option' that is always true
Browse files Browse the repository at this point in the history
- make sure that passing in option set to NULL clears the fields
  correctly

- remove the weird second take if Curl_parse_login_details() returns
  error

Follow-up to 7333faf

Spotted by CodeSonar

Closes #13619
  • Loading branch information
bagder committed May 13, 2024
1 parent 0c49ea4 commit a117747
Showing 1 changed file with 8 additions and 17 deletions.
25 changes: 8 additions & 17 deletions lib/setopt.c
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,6 @@ CURLcode Curl_setblobopt(struct curl_blob **blobp,

static CURLcode setstropt_userpwd(char *option, char **userp, char **passwdp)
{
CURLcode result = CURLE_OK;
char *user = NULL;
char *passwd = NULL;

Expand All @@ -122,30 +121,22 @@ static CURLcode setstropt_userpwd(char *option, char **userp, char **passwdp)
to clear the existing data */
if(option) {
size_t len = strlen(option);
CURLcode result;
if(len > CURL_MAX_INPUT_LENGTH)
return CURLE_BAD_FUNCTION_ARGUMENT;

result = Curl_parse_login_details(option, len, &user, &passwd, NULL);
if(result)
return result;
}

if(!result) {
/* Store the username part */
if(!user && option && option[0] == ':') {
/* Allocate an empty string instead of returning NULL as user name */
user = strdup("");
if(!user)
result = CURLE_OUT_OF_MEMORY;
}
free(*userp);
*userp = user;

Curl_safefree(*userp);
*userp = user;
free(*passwdp);
*passwdp = passwd;

/* Store the password part */
Curl_safefree(*passwdp);
*passwdp = passwd;
}

return result;
return CURLE_OK;
}

#define C_SSLVERSION_VALUE(x) (x & 0xffff)
Expand Down

0 comments on commit a117747

Please sign in to comment.