Module: wine Branch: master Commit: 89f1d626dc29b24a9dbec6e0a1e5b05e7b6c6439 URL: https://gitlab.winehq.org/wine/wine/-/commit/89f1d626dc29b24a9dbec6e0a1e5b05...
Author: Fabian Maurer dark.shadow4@web.de Date: Mon Dec 12 17:12:13 2022 +0100
wldap32: Set error code in error cases (Coverity).
Signed-off-by: Fabian Maurer dark.shadow4@web.de
---
dlls/wldap32/misc.c | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-)
diff --git a/dlls/wldap32/misc.c b/dlls/wldap32/misc.c index a8d27a87b78..f515698d095 100644 --- a/dlls/wldap32/misc.c +++ b/dlls/wldap32/misc.c @@ -218,13 +218,19 @@ WCHAR * CDECL ldap_first_attributeW( LDAP *ld, WLDAP32_LDAPMessage *entry, WLDAP if (ld && entry) retU = ldap_first_attribute( CTX(ld), MSG(entry), &berU ); else return NULL;
- if (retU && (ber = malloc( sizeof(*ber) ))) + if (!retU) + return NULL; + + if (!(ber = malloc( sizeof(*ber) ))) { - ber->opaque = (char *)berU; - *ptr = ber; - ret = strUtoW( retU ); + ld->ld_errno = WLDAP32_LDAP_NO_MEMORY; + ldap_memfree( retU ); + return NULL; }
+ ber->opaque = (char *)berU; + *ptr = ber; + ret = strUtoW( retU ); ldap_memfree( retU ); return ret; } @@ -358,12 +364,18 @@ WLDAP32_LDAPMessage * CDECL WLDAP32_ldap_next_entry( LDAP *ld, WLDAP32_LDAPMessa if (entry->lm_next) return entry->lm_next;
msgU = ldap_next_entry( CTX(ld), MSG(entry) ); - if (msgU && (msg = calloc( 1, sizeof(*msg) ))) + + if (!msgU) + return NULL; + + if (!(msg = calloc( 1, sizeof(*msg) ))) { - MSG(msg) = msgU; - entry->lm_next = msg; + ld->ld_errno = WLDAP32_LDAP_NO_MEMORY; + return NULL; }
+ MSG(msg) = msgU; + entry->lm_next = msg; return msg; }
@@ -382,12 +394,18 @@ WLDAP32_LDAPMessage * CDECL WLDAP32_ldap_next_reference( LDAP *ld, WLDAP32_LDAPM if (entry->lm_next) return entry->lm_next;
msgU = ldap_next_reference( CTX(ld), MSG(entry) ); - if (msgU && (msg = calloc( 1, sizeof(*msg) ))) + + if (!msgU) + return NULL; + + if (!(msg = calloc( 1, sizeof(*msg) ))) { - MSG(msg) = msgU; - entry->lm_next = msg; + ld->ld_errno = WLDAP32_LDAP_NO_MEMORY; + return NULL; }
+ MSG(msg) = msgU; + entry->lm_next = msg; return msg; }