gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnurl] 35/178: openldap: fix for NULL return from ldap_get


From: gnunet
Subject: [GNUnet-SVN] [gnurl] 35/178: openldap: fix for NULL return from ldap_get_attribute_ber()
Date: Wed, 23 May 2018 12:24:30 +0200

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnurl.

commit b6e484dc36a2681c0991a274398f917e74517053
Author: Howard Chu <address@hidden>
AuthorDate: Sun Mar 18 18:13:27 2018 +0000

    openldap: fix for NULL return from ldap_get_attribute_ber()
    
    Closes #2399
---
 lib/openldap.c | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/lib/openldap.c b/lib/openldap.c
index 187c89994..c6cb79434 100644
--- a/lib/openldap.c
+++ b/lib/openldap.c
@@ -536,7 +536,7 @@ static ssize_t ldap_recv(struct connectdata *conn, int 
sockindex, char *buf,
     data->req.bytecount += bv.bv_len + 5;
 
     for(rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, &bvals);
-        (rc == LDAP_SUCCESS) && bvals;
+        rc == LDAP_SUCCESS;
         rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, &bvals)) {
       int i;
 
@@ -548,6 +548,27 @@ static ssize_t ldap_recv(struct connectdata *conn, int 
sockindex, char *buf,
       else
         binary = 0;
 
+      if(bvals == NULL) {
+        writeerr = Curl_client_write(conn, CLIENTWRITE_BODY, (char *)"\t", 1);
+        if(writeerr) {
+          *err = writeerr;
+          return -1;
+        }
+        writeerr = Curl_client_write(conn, CLIENTWRITE_BODY, (char *)bv.bv_val,
+                                     bv.bv_len);
+        if(writeerr) {
+          *err = writeerr;
+          return -1;
+        }
+        writeerr = Curl_client_write(conn, CLIENTWRITE_BODY, (char *)":\n", 2);
+        if(writeerr) {
+          *err = writeerr;
+          return -1;
+        }
+        data->req.bytecount += bv.bv_len + 3;
+        continue;
+      }
+
       for(i = 0; bvals[i].bv_val != NULL; i++) {
         int binval = 0;
         writeerr = Curl_client_write(conn, CLIENTWRITE_BODY, (char *)"\t", 1);

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]