1
0
forked from pool/openldap2
openldap2/0016-ITS-8782-fix-cancel-memleak.patch

47 lines
1.4 KiB
Diff

From f82ca15a1862749e13a989599d7f4c52c7648957 Mon Sep 17 00:00:00 2001
From: Howard Chu <hyc@openldap.org>
Date: Mon, 4 Dec 2017 15:59:33 +0000
Subject: ITS#8782 plug memleaks in cancel
diff --git a/libraries/libldap/cancel.c b/libraries/libldap/cancel.c
index b09f6f021..f3677b13a 100644
--- a/libraries/libldap/cancel.c
+++ b/libraries/libldap/cancel.c
@@ -42,14 +42,14 @@ ldap_cancel(
int *msgidp )
{
BerElement *cancelidber = NULL;
- struct berval *cancelidvalp = NULL;
+ struct berval cancelidvalp = { 0, NULL };
int rc;
cancelidber = ber_alloc_t( LBER_USE_DER );
ber_printf( cancelidber, "{i}", cancelid );
- ber_flatten( cancelidber, &cancelidvalp );
+ ber_flatten2( cancelidber, &cancelidvalp, 0 );
rc = ldap_extended_operation( ld, LDAP_EXOP_CANCEL,
- cancelidvalp, sctrls, cctrls, msgidp );
+ &cancelidvalp, sctrls, cctrls, msgidp );
ber_free( cancelidber, 1 );
return rc;
}
@@ -62,14 +62,14 @@ ldap_cancel_s(
LDAPControl **cctrls )
{
BerElement *cancelidber = NULL;
- struct berval *cancelidvalp = NULL;
+ struct berval cancelidvalp = { 0, NULL };
int rc;
cancelidber = ber_alloc_t( LBER_USE_DER );
ber_printf( cancelidber, "{i}", cancelid );
- ber_flatten( cancelidber, &cancelidvalp );
+ ber_flatten2( cancelidber, &cancelidvalp, 0 );
rc = ldap_extended_operation_s( ld, LDAP_EXOP_CANCEL,
- cancelidvalp, sctrls, cctrls, NULL, NULL );
+ &cancelidvalp, sctrls, cctrls, NULL, NULL );
ber_free( cancelidber, 1 );
return rc;
}