diff options
Diffstat (limited to 'src/messenger/gnunet-service-messenger_message_store.c')
-rwxr-xr-x[-rw-r--r--] | src/messenger/gnunet-service-messenger_message_store.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/messenger/gnunet-service-messenger_message_store.c b/src/messenger/gnunet-service-messenger_message_store.c index 1f3d262ac..b143c6c98 100644..100755 --- a/src/messenger/gnunet-service-messenger_message_store.c +++ b/src/messenger/gnunet-service-messenger_message_store.c | |||
@@ -158,6 +158,8 @@ load_message_store_links (struct GNUNET_MESSENGER_MessageStore *store, const cha | |||
158 | struct GNUNET_MESSENGER_MessageLinkStorage storage; | 158 | struct GNUNET_MESSENGER_MessageLinkStorage storage; |
159 | struct GNUNET_MESSENGER_MessageLink *link = NULL; | 159 | struct GNUNET_MESSENGER_MessageLink *link = NULL; |
160 | 160 | ||
161 | memset(&storage, 0, sizeof(storage)); | ||
162 | |||
161 | do | 163 | do |
162 | { | 164 | { |
163 | if ((sizeof(storage.hash) != GNUNET_DISK_file_read (entries, &(storage.hash), sizeof(storage.hash))) || | 165 | if ((sizeof(storage.hash) != GNUNET_DISK_file_read (entries, &(storage.hash), sizeof(storage.hash))) || |
@@ -311,6 +313,8 @@ save_message_store (struct GNUNET_MESSENGER_MessageStore *store, const char *dir | |||
311 | save.store = store; | 313 | save.store = store; |
312 | save.storage = GNUNET_DISK_file_open (filename, GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE, permission); | 314 | save.storage = GNUNET_DISK_file_open (filename, GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE, permission); |
313 | 315 | ||
316 | GNUNET_free(filename); | ||
317 | |||
314 | if (!save.storage) | 318 | if (!save.storage) |
315 | goto save_entries; | 319 | goto save_entries; |
316 | 320 | ||
@@ -324,7 +328,6 @@ close_links: | |||
324 | GNUNET_DISK_file_close (save.storage); | 328 | GNUNET_DISK_file_close (save.storage); |
325 | 329 | ||
326 | save_entries: | 330 | save_entries: |
327 | GNUNET_free(filename); | ||
328 | GNUNET_asprintf (&filename, "%s%s", directory, "entries.store"); | 331 | GNUNET_asprintf (&filename, "%s%s", directory, "entries.store"); |
329 | 332 | ||
330 | save.store = store; | 333 | save.store = store; |
@@ -417,7 +420,10 @@ get_store_message (struct GNUNET_MESSENGER_MessageStore *store, const struct GNU | |||
417 | 420 | ||
418 | if ((GNUNET_YES != decoding) || (GNUNET_CRYPTO_hash_cmp (hash, &check) != 0)) | 421 | if ((GNUNET_YES != decoding) || (GNUNET_CRYPTO_hash_cmp (hash, &check) != 0)) |
419 | { | 422 | { |
420 | GNUNET_CONTAINER_multihashmap_remove (store->entries, hash, entry); | 423 | if (GNUNET_YES != GNUNET_CONTAINER_multihashmap_remove (store->entries, hash, entry)) |
424 | GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "Corrupted entry could not be removed from store: %s\n", | ||
425 | GNUNET_h2s(hash)); | ||
426 | |||
421 | store->rewrite_entries = GNUNET_YES; | 427 | store->rewrite_entries = GNUNET_YES; |
422 | 428 | ||
423 | goto free_message; | 429 | goto free_message; |