Fixed memory leak when enumerating entries
[cascardo/atompub.git] / config / gkeyfile.c
index 9023d83..891f4b5 100644 (file)
 #include <glib.h>
 
 gchar *
-gkeyfile_atom_config_get_str (AtomCtx *ctx, gchar * key)
+gkeyfile_atom_config_get_str (AtomCtx *ctx, gchar *group, gchar * key)
 {
   GKeyFile *keyfile;
   gchar *value;
   GError *error = NULL;
   keyfile = atom_config_data (ctx);
-  value = g_key_file_get_string (keyfile, "", key, &error);
+  value = g_key_file_get_string (keyfile, group, key, &error);
   if (value == NULL)
     {
-      atom_error_set (ctx, error);
+      AtomError *aerr = atom_error_new ();
+      atom_error_code_set (aerr, 500);
+      atom_error_message_set (aerr, error->message);
+      atom_error_set (ctx, aerr);
+      g_error_free (error);
     }
   return value;
 }
@@ -44,7 +48,11 @@ gkeyfile_atom_config_init (AtomCtx *ctx)
   if (!g_key_file_load_from_file (keyfile, "atompub.conf",
                                  G_KEY_FILE_NONE, &error))
     {
-      atom_error_set (ctx, error);
+      AtomError *aerr = atom_error_new ();
+      atom_error_code_set (aerr, 500);
+      atom_error_message_set (aerr, error->message);
+      atom_error_set (ctx, aerr);
+      g_error_free (error);
       return;
     }
   atom_config_data_set (ctx, keyfile);