X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcapputil%2Fsilcidcache.c;fp=lib%2Fsilcapputil%2Fsilcidcache.c;h=93364caf6ca97e04647a35ac4a813910c99bf370;hb=18ae0cdc5483a2a0246b51fc63de0f0998c32f81;hp=05959388faab0d6204b7a724a959e0f855d450ce;hpb=b39e99e9a060f767b5057007588b7011d2be3731;p=silc.git diff --git a/lib/silcapputil/silcidcache.c b/lib/silcapputil/silcidcache.c index 05959388..93364caf 100644 --- a/lib/silcapputil/silcidcache.c +++ b/lib/silcapputil/silcidcache.c @@ -223,7 +223,8 @@ SilcBool silc_idcache_del_by_context(SilcIDCache cache, void *context, SilcBool silc_idcache_update(SilcIDCache cache, SilcIDCacheEntry entry, void *old_id, void *new_id, - char *old_name, char *new_name) + char *old_name, char *new_name, + SilcBool free_old_name) { if (old_id && new_id) { if (!silc_hash_table_del_by_context(cache->id_table, old_id, entry)) @@ -244,6 +245,8 @@ SilcBool silc_idcache_update(SilcIDCache cache, SilcIDCacheEntry entry, if (!silc_hash_table_del_by_context(cache->name_table, old_name, entry)) return FALSE; + if (free_old_name) + silc_free(entry->name); entry->name = new_name; if (!silc_hash_table_add(cache->name_table, entry->name, entry))