openldap/ldap; check for binary attribute case insensitively

This bug was found with ZeroPath

Fixes #19240
Reported-by: Joshua Rogers
Closes #19273
This commit is contained in:
Daniel Stenberg 2025-10-29 09:11:09 +01:00
parent 614895c045
commit a97f9d41cc
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
2 changed files with 3 additions and 3 deletions

View File

@ -623,7 +623,7 @@ static CURLcode ldap_do(struct Curl_easy *data, bool *done)
}
if((attr_len > 7) &&
(strcmp(";binary", attr + (attr_len - 7)) == 0)) {
curl_strequal(";binary", attr + (attr_len - 7)) ) {
/* Binary attribute, encode to base64. */
if(vals[i]->bv_len) {
result = curlx_base64_encode(vals[i]->bv_val, vals[i]->bv_len,

View File

@ -1096,7 +1096,6 @@ static CURLcode oldap_recv(struct Curl_easy *data, int sockindex, char *buf,
BerElement *ber = NULL;
struct timeval tv = {0, 0};
struct berval bv, *bvals;
bool binary = FALSE;
CURLcode result = CURLE_AGAIN;
int code;
char *info = NULL;
@ -1167,6 +1166,7 @@ static CURLcode oldap_recv(struct Curl_easy *data, int sockindex, char *buf,
rc == LDAP_SUCCESS;
rc = ldap_get_attribute_ber(li->ld, msg, ber, &bv, &bvals)) {
int i;
bool binary;
if(!bv.bv_val)
break;
@ -1180,7 +1180,7 @@ static CURLcode oldap_recv(struct Curl_easy *data, int sockindex, char *buf,
}
binary = bv.bv_len > 7 &&
!strncmp(bv.bv_val + bv.bv_len - 7, ";binary", 7);
curl_strnequal(bv.bv_val + bv.bv_len - 7, ";binary", 7);
for(i = 0; bvals[i].bv_val != NULL; i++) {
bool binval = FALSE;