_PUBLIC_ void cli_credentials_parse_string(struct cli_credentials *credentials, const char *data, enum credentials_obtained obtained)
{
char *uname, *p;
+ char *uname_free = NULL;
if (strcmp("%",data) == 0) {
cli_credentials_set_anonymous(credentials);
}
uname = talloc_strdup(credentials, data);
+ uname_free = uname;
+
if ((p = strchr_m(uname,'%'))) {
*p = 0;
cli_credentials_set_password(credentials, p+1, obtained);
cli_credentials_set_principal(credentials, uname, obtained);
*p = 0;
cli_credentials_set_realm(credentials, p+1, obtained);
+ TALLOC_FREE(uname_free);
return;
} else if ((p = strchr_m(uname,'\\'))
|| (p = strchr_m(uname, '/'))
credentials->principal = NULL;
}
cli_credentials_set_username(credentials, uname, obtained);
+
+ TALLOC_FREE(uname_free);
}
/**