Skip to content

Commit

Permalink
setopt: make the setstropt_userpwd args compulsory
Browse files Browse the repository at this point in the history
They were always used so no point in allowing them to be optional.

follow-up to 0e37b42

Closes #13608
Reviewed-by: Daniel Gustafsson
  • Loading branch information
bagder committed May 13, 2024
1 parent 9f2dd22 commit 7333faf
Showing 1 changed file with 16 additions and 20 deletions.
36 changes: 16 additions & 20 deletions lib/setopt.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,38 +115,34 @@ static CURLcode setstropt_userpwd(char *option, char **userp, char **passwdp)
char *user = NULL;
char *passwd = NULL;

DEBUGASSERT(userp);
DEBUGASSERT(passwdp);

/* Parse the login details if specified. It not then we treat NULL as a hint
to clear the existing data */
if(option) {
size_t len = strlen(option);
if(len > CURL_MAX_INPUT_LENGTH)
return CURLE_BAD_FUNCTION_ARGUMENT;

result = Curl_parse_login_details(option, len,
(userp ? &user : NULL),
(passwdp ? &passwd : NULL),
NULL);
result = Curl_parse_login_details(option, len, &user, &passwd, NULL);
}

if(!result) {
/* Store the username part of option if required */
if(userp) {
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;
}

Curl_safefree(*userp);
*userp = user;
/* 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;
}

/* Store the password part of option if required */
if(passwdp) {
Curl_safefree(*passwdp);
*passwdp = passwd;
}
Curl_safefree(*userp);
*userp = user;

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

return result;
Expand Down

0 comments on commit 7333faf

Please sign in to comment.