diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/charon/daemon.c | 7 | ||||
-rw-r--r-- | src/charon/plugins/sql/pool.c | 13 | ||||
-rw-r--r-- | src/manager/main.c | 7 | ||||
-rw-r--r-- | src/medsrv/main.c | 7 | ||||
-rwxr-xr-x | src/openac/openac.c | 10 | ||||
-rw-r--r-- | src/pki/pki.c | 7 | ||||
-rw-r--r-- | src/pluto/plutomain.c | 7 | ||||
-rw-r--r-- | src/scepclient/scepclient.c | 7 |
8 files changed, 44 insertions, 21 deletions
diff --git a/src/charon/daemon.c b/src/charon/daemon.c index 0689c448e..cf2b1c7be 100644 --- a/src/charon/daemon.c +++ b/src/charon/daemon.c @@ -491,8 +491,11 @@ static bool initialize(private_daemon_t *this, bool syslog, level_t levels[]) this->public.traps = trap_manager_create(); /* load plugins, further infrastructure may need it */ - lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, - lib->settings->get_str(lib->settings, "charon.load", PLUGINS)); + if (!lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, + lib->settings->get_str(lib->settings, "charon.load", PLUGINS))) + { + return FALSE; + } print_plugins(); diff --git a/src/charon/plugins/sql/pool.c b/src/charon/plugins/sql/pool.c index 6c0c1f5a6..ef119c966 100644 --- a/src/charon/plugins/sql/pool.c +++ b/src/charon/plugins/sql/pool.c @@ -634,20 +634,23 @@ int main(int argc, char *argv[]) fprintf(stderr, "integrity check of pool failed\n"); exit(SS_RC_DAEMON_INTEGRITY); } - lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, - lib->settings->get_str(lib->settings, "pool.load", PLUGINS)); + if (!lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, + lib->settings->get_str(lib->settings, "pool.load", PLUGINS))) + { + exit(SS_RC_INITIALIZATION_FAILED); + } uri = lib->settings->get_str(lib->settings, "charon.plugins.sql.database", NULL); if (!uri) { fprintf(stderr, "database URI charon.plugins.sql.database not set.\n"); - exit(-1); + exit(SS_RC_INITIALIZATION_FAILED); } db = lib->db->create(lib->db, uri); if (!db) { fprintf(stderr, "opening database failed.\n"); - exit(-1); + exit(SS_RC_INITIALIZATION_FAILED); } atexit(cleanup); @@ -677,7 +680,7 @@ int main(int argc, char *argv[]) switch (c) { case EOF: - break; + break; case 'h': break; case 'w': diff --git a/src/manager/main.c b/src/manager/main.c index 6fef0bf3e..3d2c4de6b 100644 --- a/src/manager/main.c +++ b/src/manager/main.c @@ -35,8 +35,11 @@ int main (int arc, char *argv[]) int threads, timeout; library_init(STRONGSWAN_CONF); - lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, - lib->settings->get_str(lib->settings, "manager.load", PLUGINS)); + if (!lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, + lib->settings->get_str(lib->settings, "manager.load", PLUGINS))) + { + return 1; + } socket = lib->settings->get_str(lib->settings, "manager.socket", NULL); debug = lib->settings->get_bool(lib->settings, "manager.debug", FALSE); diff --git a/src/medsrv/main.c b/src/medsrv/main.c index 20dec9d37..e4f878304 100644 --- a/src/medsrv/main.c +++ b/src/medsrv/main.c @@ -34,8 +34,11 @@ int main(int arc, char *argv[]) int timeout, threads; library_init(STRONGSWAN_CONF); - lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, - lib->settings->get_str(lib->settings, "medsrv.load", PLUGINS)); + if (!lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, + lib->settings->get_str(lib->settings, "medsrv.load", PLUGINS))) + { + return 1; + } socket = lib->settings->get_str(lib->settings, "medsrv.socket", NULL); debug = lib->settings->get_bool(lib->settings, "medsrv.debug", FALSE); diff --git a/src/openac/openac.c b/src/openac/openac.c index db9959803..d6e75efc3 100755 --- a/src/openac/openac.c +++ b/src/openac/openac.c @@ -220,20 +220,22 @@ int main(int argc, char **argv) openlog("openac", 0, LOG_AUTHPRIV); /* initialize library */ + atexit(library_deinit); if (!library_init(STRONGSWAN_CONF)) { - library_deinit(); exit(SS_RC_LIBSTRONGSWAN_INTEGRITY); } if (lib->integrity && !lib->integrity->check_file(lib->integrity, "openac", argv[0])) { fprintf(stderr, "integrity check of openac failed\n"); - library_deinit(); exit(SS_RC_DAEMON_INTEGRITY); } - lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, - lib->settings->get_str(lib->settings, "openac.load", PLUGINS)); + if (!lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, + lib->settings->get_str(lib->settings, "openac.load", PLUGINS))) + { + exit(SS_RC_INITIALIZATION_FAILED); + } /* initialize optionsfrom */ options_t *options = options_create(); diff --git a/src/pki/pki.c b/src/pki/pki.c index 13f2627e8..a612a1b07 100644 --- a/src/pki/pki.c +++ b/src/pki/pki.c @@ -747,8 +747,11 @@ int main(int argc, char *argv[]) fprintf(stderr, "integrity check of pki failed\n"); exit(SS_RC_DAEMON_INTEGRITY); } - lib->plugins->load(lib->plugins, PLUGINDIR, - lib->settings->get_str(lib->settings, "pki.load", PLUGINS)); + if (!lib->plugins->load(lib->plugins, PLUGINDIR, + lib->settings->get_str(lib->settings, "pki.load", PLUGINS))) + { + exit(SS_RC_INITIALIZATION_FAILED); + } switch (getopt_long(argc, argv, "", long_opts, NULL)) { diff --git a/src/pluto/plutomain.c b/src/pluto/plutomain.c index b3d75e87a..550bda999 100644 --- a/src/pluto/plutomain.c +++ b/src/pluto/plutomain.c @@ -652,8 +652,11 @@ int main(int argc, char **argv) } /* load plugins, further infrastructure may need it */ - lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, - lib->settings->get_str(lib->settings, "pluto.load", PLUGINS)); + if (!lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, + lib->settings->get_str(lib->settings, "pluto.load", PLUGINS))) + { + exit(SS_RC_INITIALIZATION_FAILED); + } print_plugins(); init_builder(); diff --git a/src/scepclient/scepclient.c b/src/scepclient/scepclient.c index e01997ce6..f2b49f256 100644 --- a/src/scepclient/scepclient.c +++ b/src/scepclient/scepclient.c @@ -759,8 +759,11 @@ int main(int argc, char **argv) init_log("scepclient"); /* load plugins, further infrastructure may need it */ - lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, - lib->settings->get_str(lib->settings, "scepclient.load", PLUGINS)); + if (!lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, + lib->settings->get_str(lib->settings, "scepclient.load", PLUGINS))) + { + exit_scepclient("plugin loading failed"); + } print_plugins(); if ((filetype_out == 0) && (!request_ca_certificate)) |