You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.6 KiB
45 lines
1.6 KiB
From 1d7bcc866591aba5788dc6c701ef8b564d09e329 Mon Sep 17 00:00:00 2001 |
|
From: Daniel Stenberg <daniel@haxx.se> |
|
Date: Tue, 6 Mar 2018 23:02:16 +0100 |
|
Subject: [PATCH] openldap: check ldap_get_attribute_ber() results for NULL |
|
before using |
|
|
|
CVE-2018-1000121 |
|
Reported-by: Dario Weisser |
|
Bug: https://curl.haxx.se/docs/adv_2018-97a2.html |
|
|
|
Upstream-commit: 9889db043393092e9d4b5a42720bba0b3d58deba |
|
Signed-off-by: Kamil Dudka <kdudka@redhat.com> |
|
--- |
|
lib/openldap.c | 8 ++++---- |
|
1 file changed, 4 insertions(+), 4 deletions(-) |
|
|
|
diff --git a/lib/openldap.c b/lib/openldap.c |
|
index 369309c..d71946d 100644 |
|
--- a/lib/openldap.c |
|
+++ b/lib/openldap.c |
|
@@ -435,7 +435,7 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf, |
|
|
|
for(ent = ldap_first_message(li->ld, result); ent; |
|
ent = ldap_next_message(li->ld, ent)) { |
|
- struct berval bv, *bvals, **bvp = &bvals; |
|
+ struct berval bv, *bvals; |
|
int binary = 0, msgtype; |
|
|
|
msgtype = ldap_msgtype(ent); |
|
@@ -481,9 +481,9 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf, |
|
Curl_client_write(conn, CLIENTWRITE_BODY, (char *)"\n", 1); |
|
data->req.bytecount += bv.bv_len + 5; |
|
|
|
- for(rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, bvp); |
|
- rc == LDAP_SUCCESS; |
|
- rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, bvp)) { |
|
+ for(rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, &bvals); |
|
+ (rc == LDAP_SUCCESS) && bvals; |
|
+ rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, &bvals)) { |
|
int i; |
|
|
|
if(bv.bv_val == NULL) break; |
|
-- |
|
2.14.3 |
|
|
|
|