From: Pekka Riikonen Date: Fri, 2 Feb 2007 20:23:26 +0000 (+0000) Subject: Fixed entry updating when name has not been set to entry. X-Git-Tag: silc.client.1.1.beta1~32 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=c1ce2120a97f8f4a2fcd940295ad4b6b6efce9e0 Fixed entry updating when name has not been set to entry. --- diff --git a/lib/silcapputil/silcidcache.c b/lib/silcapputil/silcidcache.c index 68c0f8af..52ddcef7 100644 --- a/lib/silcapputil/silcidcache.c +++ b/lib/silcapputil/silcidcache.c @@ -4,7 +4,7 @@ Author: Pekka Riikonen - Copyright (C) 2000 - 2006 Pekka Riikonen + Copyright (C) 2000 - 2007 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -138,17 +138,14 @@ silc_idcache_add(SilcIDCache cache, char *name, void *id, void *context) SILC_LOG_DEBUG(("Adding cache entry %p", c)); /* Add the new entry to the hash tables */ - - if (id) { - if (silc_idcache_find_by_id_one(cache, id, NULL)) { - SILC_LOG_ERROR(("Attempted to add same ID twice to ID Cache, id %s", - silc_id_render(id, cache->id_type))); - SILC_ASSERT(FALSE); - goto err; - } - if (!silc_hash_table_add(cache->id_table, id, c)) - goto err; + if (silc_idcache_find_by_id_one(cache, id, NULL)) { + SILC_LOG_ERROR(("Attempted to add same ID twice to ID Cache, id %s", + silc_id_render(id, cache->id_type))); + SILC_ASSERT(FALSE); + goto err; } + if (!silc_hash_table_add(cache->id_table, id, c)) + goto err; if (name) if (!silc_hash_table_add(cache->name_table, name, c)) goto err; @@ -243,8 +240,10 @@ SilcBool silc_idcache_update(SilcIDCache cache, SilcIDCacheEntry entry, } if (new_name) { - if (!silc_hash_table_del_by_context(cache->name_table, entry->name, entry)) - return FALSE; + if (entry->name) + if (!silc_hash_table_del_by_context(cache->name_table, entry->name, + entry)) + return FALSE; if (free_old_name) silc_free(entry->name);