From f0a6465f2369696f02dbf2453a6a50089b1558a5 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Mon, 21 Mar 2022 12:59:07 +0000 Subject: [PATCH] ITS#9802 slapd-ldap/meta/async-meta: plug memleak in keepalive config --- servers/slapd/back-asyncmeta/config.c | 8 +++++--- servers/slapd/back-ldap/config.c | 8 +++++--- servers/slapd/back-meta/config.c | 8 +++++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/servers/slapd/back-asyncmeta/config.c b/servers/slapd/back-asyncmeta/config.c index 69f134b2b..e4cc5eab7 100644 --- a/servers/slapd/back-asyncmeta/config.c +++ b/servers/slapd/back-asyncmeta/config.c @@ -2498,9 +2498,11 @@ asyncmeta_back_cf_gen( ConfigArgs *c ) break; #endif /* SLAPD_META_CLIENT_PR */ - case LDAP_BACK_CFG_KEEPALIVE: - slap_keepalive_parse( ber_bvstrdup(c->argv[1]), - &mt->mt_tls.sb_keepalive, 0, 0, 0); + case LDAP_BACK_CFG_KEEPALIVE: { + struct berval bv; + ber_str2bv( c->argv[1], 0, 1, &bv ); + slap_keepalive_parse( &bv, &mt->mt_tls.sb_keepalive, 0, 0, 0 ); + } break; case LDAP_BACK_CFG_TCP_USER_TIMEOUT: diff --git a/servers/slapd/back-ldap/config.c b/servers/slapd/back-ldap/config.c index 07fe8e9f1..fb97e8ea3 100644 --- a/servers/slapd/back-ldap/config.c +++ b/servers/slapd/back-ldap/config.c @@ -2051,9 +2051,11 @@ done_url:; } break; - case LDAP_BACK_CFG_KEEPALIVE: - slap_keepalive_parse( ber_bvstrdup(c->argv[1]), - &li->li_tls.sb_keepalive, 0, 0, 0); + case LDAP_BACK_CFG_KEEPALIVE: { + struct berval bv; + ber_str2bv( c->argv[1], 0, 1, &bv ); + slap_keepalive_parse( &bv, &li->li_tls.sb_keepalive, 0, 0, 0 ); + } break; case LDAP_BACK_CFG_TCP_USER_TIMEOUT: diff --git a/servers/slapd/back-meta/config.c b/servers/slapd/back-meta/config.c index 0f876e77f..c38dce1cf 100644 --- a/servers/slapd/back-meta/config.c +++ b/servers/slapd/back-meta/config.c @@ -2913,9 +2913,11 @@ map_fail:; break; #endif /* SLAPD_META_CLIENT_PR */ - case LDAP_BACK_CFG_KEEPALIVE: - slap_keepalive_parse( ber_bvstrdup(c->argv[1]), - &mt->mt_tls.sb_keepalive, 0, 0, 0); + case LDAP_BACK_CFG_KEEPALIVE: { + struct berval bv; + ber_str2bv( c->argv[ 1 ], 0, 1, &bv ); + slap_keepalive_parse( &bv, &mt->mt_tls.sb_keepalive, 0, 0, 0 ); + } break; case LDAP_BACK_CFG_TCP_USER_TIMEOUT: -- 2.33.0