mirror of
https://github.com/moparisthebest/curl
synced 2024-11-12 04:25:08 -05:00
openldap: fix for NULL return from ldap_get_attribute_ber()
Closes #2399
This commit is contained in:
parent
22e56194e3
commit
b6e484dc36
@ -536,7 +536,7 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf,
|
|||||||
data->req.bytecount += bv.bv_len + 5;
|
data->req.bytecount += bv.bv_len + 5;
|
||||||
|
|
||||||
for(rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, &bvals);
|
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)) {
|
rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, &bvals)) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -548,6 +548,27 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf,
|
|||||||
else
|
else
|
||||||
binary = 0;
|
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++) {
|
for(i = 0; bvals[i].bv_val != NULL; i++) {
|
||||||
int binval = 0;
|
int binval = 0;
|
||||||
writeerr = Curl_client_write(conn, CLIENTWRITE_BODY, (char *)"\t", 1);
|
writeerr = Curl_client_write(conn, CLIENTWRITE_BODY, (char *)"\t", 1);
|
||||||
|
Loading…
Reference in New Issue
Block a user