>From 854200f2bde1db0737e7d2f5eab2ab9305fdbb6f Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Mon, 7 Jul 2014 21:55:14 +0200 Subject: [PATCH 7/7] SDAP: Free bervals on failure in sdap_parse_entry --- src/providers/ldap/sdap.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/providers/ldap/sdap.c b/src/providers/ldap/sdap.c index ac90685a74814316ae90235b3b639af7fc366980..6d2fe6254ea706ddbb178060dbb7117aa2cad48d 100644 --- a/src/providers/ldap/sdap.c +++ b/src/providers/ldap/sdap.c @@ -462,6 +462,7 @@ int sdap_parse_entry(TALLOC_CTX *memctx, v.data = (uint8_t *) sss_base64_encode(attrs, (uint8_t *) vals[i]->bv_val, vals[i]->bv_len); if (!v.data) { + ldap_value_free_len(vals); ret = ENOMEM; goto done; } @@ -486,13 +487,19 @@ int sdap_parse_entry(TALLOC_CTX *memctx, ret = sysdb_attrs_add_val(attrs, map[ai].sys_name, &v); - if (ret) goto done; + if (ret) { + ldap_value_free_len(vals); + goto done; + } } } } else { /* No map, just store the attribute */ ret = sysdb_attrs_add_val(attrs, name, &v); - if (ret) goto done; + if (ret) { + ldap_value_free_len(vals); + goto done; + } } } ldap_value_free_len(vals); -- 1.9.3