check if parsing of ipsec update was successful
authorAndreas Steffen <andreas.steffen@strongswan.org>
Wed, 2 Jul 2008 05:51:49 +0000 (05:51 -0000)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Wed, 2 Jul 2008 05:51:49 +0000 (05:51 -0000)
src/starter/confread.c
src/starter/starter.c

index 3794992..914024d 100644 (file)
@@ -931,8 +931,9 @@ confread_load(const char *file)
        /* load IPSec configuration file  */
        cfgp = parser_load_conf(file);
        if (!cfgp)
+       {
                return NULL;
-
+       }
        cfg = (starter_config_t *)alloc_thing(starter_config_t, "starter_config_t");
 
        /* set default values */
index ff042e2..ad78d14 100644 (file)
@@ -452,7 +452,7 @@ int main (int argc, char **argv)
               );
            new_cfg = confread_load(CONFIG_FILE);
 
-           if (new_cfg->err + new_cfg->non_fatal_err == 0)
+           if (new_cfg && (new_cfg->err + new_cfg->non_fatal_err == 0))
            {
                /* Switch to new config. New conn will be loaded below */
                if (!starter_cmp_defaultroute(&new_cfg->defaultroute
@@ -546,7 +546,10 @@ int main (int argc, char **argv)
            else
            {
                plog("can't reload config file due to errors -- keeping old one");
-               confread_free(new_cfg);
+               if (new_cfg)
+               {
+                   confread_free(new_cfg);
+               }
            }
            _action_ &= ~FLAG_ACTION_UPDATE;
            last_reload = time(NULL);