Blame SOURCES/0062-curl-7.29.0-CVE-2018-1000121.patch

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