mirror of
https://github.com/moparisthebest/curl
synced 2025-01-11 05:58:01 -05:00
ldap: fix OOM error on missing query string
- Allow missing queries, don't return NO_MEMORY error in such a case.
It is acceptable for there to be no specified query string, for example:
curl ldap://ldap.forumsys.com
A regression bug in 1b443a7
caused this issue.
This is a partial fix for #4261.
Bug: https://github.com/curl/curl/issues/4261#issuecomment-525543077
Reported-by: Jojojov@users.noreply.github.com
Analyzed-by: Samuel Surtees
Closes https://github.com/curl/curl/pull/4467
This commit is contained in:
parent
df85b86a92
commit
8bb3a95ce1
18
lib/ldap.c
18
lib/ldap.c
@ -844,10 +844,10 @@ static bool split_str(char *str, char ***out, size_t *count)
|
||||
static int _ldap_url_parse2(const struct connectdata *conn, LDAPURLDesc *ludp)
|
||||
{
|
||||
int rc = LDAP_SUCCESS;
|
||||
char *path;
|
||||
char *query;
|
||||
char *p;
|
||||
char *q;
|
||||
char *path;
|
||||
char *q = NULL;
|
||||
char *query = NULL;
|
||||
size_t i;
|
||||
|
||||
if(!conn->data ||
|
||||
@ -865,11 +865,13 @@ static int _ldap_url_parse2(const struct connectdata *conn, LDAPURLDesc *ludp)
|
||||
if(!path)
|
||||
return LDAP_NO_MEMORY;
|
||||
|
||||
/* Duplicate the query */
|
||||
q = query = strdup(conn->data->state.up.query);
|
||||
if(!query) {
|
||||
free(path);
|
||||
return LDAP_NO_MEMORY;
|
||||
/* Duplicate the query if present */
|
||||
if(conn->data->state.up.query) {
|
||||
q = query = strdup(conn->data->state.up.query);
|
||||
if(!query) {
|
||||
free(path);
|
||||
return LDAP_NO_MEMORY;
|
||||
}
|
||||
}
|
||||
|
||||
/* Parse the DN (Distinguished Name) */
|
||||
|
Loading…
Reference in New Issue
Block a user