Returns now GNUNET_SYSERR
[oweals/gnunet.git] / src / util / pseudonym.c
index 057befaa605bc7eeec8a93a27479dfe75cb282d3..6e275c377c2cc55b34544caa7269d79911788c67 100644 (file)
@@ -243,16 +243,20 @@ read_info (const struct GNUNET_CONFIGURATION_Handle *cfg,
       GNUNET_free (fn);
       return GNUNET_SYSERR;
     }
+  emsg = NULL;
+  *ns_name = NULL;
   if ( (GNUNET_OK != GNUNET_BIO_read_int32 (fileR, ranking)) ||
        (GNUNET_OK != GNUNET_BIO_read_string(fileR, "Read string error!", ns_name, 200)) ||
        (GNUNET_OK != GNUNET_BIO_read_meta_data(fileR, "Read meta data error!", meta)) )
     {
       GNUNET_BIO_read_close(fileR, &emsg);
+      GNUNET_free_non_null (emsg);
+      GNUNET_free_non_null (*ns_name);
+      *ns_name = NULL;
       GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn));
       GNUNET_free (fn);
       return GNUNET_SYSERR;
     }
-  emsg = NULL;
   if (GNUNET_OK != GNUNET_BIO_read_close(fileR, &emsg))
     {
       GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -260,6 +264,10 @@ read_info (const struct GNUNET_CONFIGURATION_Handle *cfg,
                  fn,
                  emsg);
       GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn));
+      GNUNET_CONTAINER_meta_data_destroy (*meta);
+      *meta = NULL;
+      GNUNET_free_non_null (*ns_name);
+      *ns_name = NULL;
       GNUNET_free_non_null (emsg);
       GNUNET_free (fn);
       return GNUNET_SYSERR;