perl plugin: Fixed a memory leak in pplugin_register_data_set().
authorSebastian Harl <sh@tokkee.org>
Mon, 26 Nov 2007 11:17:26 +0000 (12:17 +0100)
committerFlorian Forster <octo@huhu.verplant.org>
Tue, 4 Dec 2007 09:04:44 +0000 (10:04 +0100)
The data set definition is copied by plugin_register_data_set() (in plugin.c)
and thus should be freed after it has been passed on to the plugin module.

Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/perl.c

index c0e99f5..dc548b2 100644 (file)
@@ -388,6 +388,7 @@ static char *get_module_name (char *buf, size_t buf_len, const char *module) {
 static int pplugin_register_data_set (pTHX_ char *name, AV *dataset)
 {
        int len = -1;
+       int ret = 0;
        int i   = 0;
 
        data_source_t *ds  = NULL;
@@ -428,7 +429,12 @@ static int pplugin_register_data_set (pTHX_ char *name, AV *dataset)
 
        set->ds_num = len + 1;
        set->ds = ds;
-       return plugin_register_data_set (set);
+
+       ret = plugin_register_data_set (set);
+
+       free (ds);
+       free (set);
+       return ret;
 } /* static int pplugin_register_data_set (char *, SV *) */
 
 /*