Changeset 49f1105


Ignore:
Timestamp:
2015-08-19T03:23:44Z (5 years ago)
Author:
dequis <dx@…>
Branches:
master
Children:
3e6cdb6
Parents:
b39859e
git-author:
dequis <dx@…> (19-08-15 03:18:50)
git-committer:
dequis <dx@…> (19-08-15 03:23:44)
Message:

conf: Fix leak of members of conf_t when using -c to specify a config

Can only happen once, and it's just ~200 bytes.

But being valgrind-clean is good.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • conf.c

    rb39859e r49f1105  
    3737
    3838static int conf_loadini(conf_t *conf, char *file);
     39static void conf_free(conf_t *conf);
    3940
    4041conf_t *conf_load(int argc, char *argv[])
     
    104105                                g_free(global.conf_file);
    105106                                global.conf_file = g_strdup(optarg);
    106                                 g_free(conf);
     107                                conf_free(conf);
    107108                                /* Re-evaluate arguments. Don't use this option twice,
    108109                                   you'll end up in an infinite loop! Hope this trick
     
    168169}
    169170
     171static void conf_free(conf_t *conf)
     172{
     173        /* Free software means users have the four essential freedoms:
     174           0. to run the program,
     175           2. to study and change the program in source code form,
     176           2. to redistribute exact copies, and
     177           3. to distribute modified versions
     178        */
     179        g_free(conf->auth_pass);
     180        g_free(conf->cafile);
     181        g_free(conf->configdir);
     182        g_free(conf->ft_listen);
     183        g_free(conf->hostname);
     184        g_free(conf->iface_in);
     185        g_free(conf->iface_out);
     186        g_free(conf->motdfile);
     187        g_free(conf->oper_pass);
     188        g_free(conf->pidfile);
     189        g_free(conf->plugindir);
     190        g_free(conf->port);
     191        g_free(conf->primary_storage);
     192        g_free(conf->user);
     193        g_strfreev(conf->migrate_storage);
     194        g_strfreev(conf->protocols);
     195        g_free(conf);
     196
     197}
     198
    170199static int conf_loadini(conf_t *conf, char *file)
    171200{
Note: See TracChangeset for help on using the changeset viewer.