From 29524a65fa8e49aa1a15e691e712466d8c703b61 Mon Sep 17 00:00:00 2001
From: Mattias Andrée <maandree@operamail.com>
Date: Mon, 24 Aug 2015 17:03:29 +0200
Subject: mds-registry: fix memory free upon error bug
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Mattias Andrée <maandree@operamail.com>
---
 src/mds-registry/mds-registry.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

(limited to 'src/mds-registry')

diff --git a/src/mds-registry/mds-registry.c b/src/mds-registry/mds-registry.c
index df3db51..f4ed92c 100644
--- a/src/mds-registry/mds-registry.c
+++ b/src/mds-registry/mds-registry.c
@@ -117,19 +117,17 @@ int initialise_server(void)
    */
   
   fail_if (full_send(message, strlen(message)));  stage++;
-  fail_if (hash_table_create_tuned(&reg_table, 32));  stage++;
+  fail_if (hash_table_create_tuned(&reg_table, 32));
   reg_table.key_comparator = (compare_func*)string_comparator;
   reg_table.hasher = (hash_func*)string_hash;
-  fail_if (server_initialised() < 0);
+  fail_if (server_initialised() < 0);  stage++;
   fail_if (mds_message_initialise(&received));
   
   return 0;  
  fail:
   xperror(*argv);
-  if (stage == 1)
-    hash_table_destroy(&reg_table, NULL, NULL);
-  if (stage == 2)
-    mds_message_destroy(&received);
+  if (stage >= 1)  hash_table_destroy(&reg_table, NULL, NULL);
+  if (stage >= 2)  mds_message_destroy(&received);
   return 1;
 }
 
-- 
cgit v1.2.3-70-g09d2