From 1eb278540e851cf0987d879c854c4dde3d27a586 Mon Sep 17 00:00:00 2001 From: Ken Rossato Date: Aug 28 2012 16:30:29 +0000 Subject: Memory leaks: unmatched slapi_attr_get_valueset and slapi_value_new Reviewed by: rmeggins --- diff --git a/ldap/servers/plugins/posix-winsync/posix-group-func.c b/ldap/servers/plugins/posix-winsync/posix-group-func.c index dc8e7ce..d6b68c5 100644 --- a/ldap/servers/plugins/posix-winsync/posix-group-func.c +++ b/ldap/servers/plugins/posix-winsync/posix-group-func.c @@ -357,6 +357,7 @@ modGroupMembership(Slapi_Entry *entry, Slapi_Mods *smods, int *do_modify) "modGroupMembership: no attribute memberUid, add with %s \n", uid_dn); slapi_ch_array_add(&adduids, uid); + uid = NULL; /* adduids now owns uid */ doModify = true; } else { /* Found a memberUid list, so modify */ Slapi_ValueSet *vs = NULL; @@ -372,9 +373,13 @@ modGroupMembership(Slapi_Entry *entry, Slapi_Mods *smods, int *do_modify) slapi_ch_array_add(&moduids, uid); slapi_log_error(SLAPI_LOG_PLUGIN, POSIX_WINSYNC_PLUGIN_NAME, "modGroupMembership: add to modlist %s\n", uid); + uid = NULL; /* adduids now owns uid */ + /* have to clear out v otherwise slapi_value_free will also free uid */ + slapi_value_init_berval(v, NULL); doModify = true; } - /* slapi_value_free(&v); */ + slapi_value_free(&v); /* also frees uid since it was a passin */ + slapi_valueset_free(vs); vs = NULL; } } }