X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Ftincd.c;h=bdac0c9d8451f1f3cac3d2103e8778d49dd1cdad;hp=bc04f5f25b79d57d0f4d5776b56ad38f3e2b0119;hb=4701ce8f18a7785c49848e434b6e26aac89c2942;hpb=54b18a85f68652f94ac5ecffbd9d100879ed06ea diff --git a/src/tincd.c b/src/tincd.c index bc04f5f2..bdac0c9d 100644 --- a/src/tincd.c +++ b/src/tincd.c @@ -37,7 +37,9 @@ #include #include #include +#ifndef OPENSSL_NO_ENGINE #include +#endif #ifdef HAVE_LZO #include LZO1X_H @@ -434,7 +436,10 @@ static bool keygen(int bits) { BN_GENCB_set(cb, indicator, NULL); rsa_key = RSA_new(); - BN_hex2bn(&e, "10001"); + + if(BN_hex2bn(&e, "10001") == 0) { + abort(); + } if(!rsa_key || !e) { abort(); @@ -559,25 +564,11 @@ static void make_names(void) { } static void free_names() { - if(identname) { - free(identname); - } - - if(netname) { - free(netname); - } - - if(pidfilename) { - free(pidfilename); - } - - if(logfilename) { - free(logfilename); - } - - if(confbase) { - free(confbase); - } + free(identname); + free(netname); + free(pidfilename); + free(logfilename); + free(confbase); } static bool drop_privs() { @@ -696,12 +687,10 @@ int main(int argc, char **argv) { init_configuration(&config_tree); - /* Slllluuuuuuurrrrp! */ - - RAND_load_file("/dev/urandom", 1024); - +#ifndef OPENSSL_NO_ENGINE ENGINE_load_builtin_engines(); ENGINE_register_all_complete(); +#endif OpenSSL_add_all_algorithms(); @@ -824,7 +813,9 @@ end: EVP_cleanup(); ERR_free_strings(); +#ifndef OPENSSL_NO_ENGINE ENGINE_cleanup(); +#endif exit_configuration(&config_tree); list_delete_list(cmdline_conf);