summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas <abramlujan@gmail.com>2019-10-04 22:49:43 -0300
committerJay Satiro <raysatiro@yahoo.com>2019-10-05 19:47:31 -0400
commit8bb3a95ce1577e2c8282e7d1c2830bde87cf5c3b (patch)
tree9f18217197dc7604bd6e21c09649431eaa4aa0a0
parentdf85b86a92ac2488667acfd81d16321c73fceecf (diff)
downloadcurl-8bb3a95ce1577e2c8282e7d1c2830bde87cf5c3b.tar.gz
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
-rw-r--r--lib/ldap.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/ldap.c b/lib/ldap.c
index d7d90fea7..af3d61c57 100644
--- a/lib/ldap.c
+++ b/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) */