X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Ftincd.c;h=9253d9f28c7c5d96b1302d65ad5cd718ab4cc406;hp=5b6b32940fb737491ec55f52c2653393ed6ed7c0;hb=d2f8d0920226e4d8edd3efa3c18b46b783aacea0;hpb=21e7eb0afb3b5f332a90b9ed63d6770db791ecb1 diff --git a/src/tincd.c b/src/tincd.c index 5b6b3294..9253d9f2 100644 --- a/src/tincd.c +++ b/src/tincd.c @@ -1,7 +1,7 @@ /* tincd.c -- the main file for tincd Copyright (C) 1998-2005 Ivo Timmermans - 2000-2017 Guus Sliepen + 2000-2018 Guus Sliepen 2008 Max Rijevski 2009 Michael Tokarev 2010 Julien Muchembled @@ -363,6 +363,8 @@ static bool parse_options(int argc, char **argv) { /* This function prettyprints the key generation process */ static int indicator(int a, int b, BN_GENCB *cb) { + (void)cb; + switch(a) { case 0: fprintf(stderr, "."); @@ -432,7 +434,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(); @@ -536,7 +541,7 @@ static void make_names(void) { #endif if(!pidfilename) { - xasprintf(&pidfilename, LOCALSTATEDIR "/run/%s.pid", identname); + xasprintf(&pidfilename, RUNSTATEDIR "/%s.pid", identname); } if(!logfilename) { @@ -660,7 +665,7 @@ int main(int argc, char **argv) { if(show_version) { printf("%s version %s\n", PACKAGE, VERSION); - printf("Copyright (C) 1998-2017 Ivo Timmermans, Guus Sliepen and others.\n" + printf("Copyright (C) 1998-2018 Ivo Timmermans, Guus Sliepen and others.\n" "See the AUTHORS file for a complete list.\n\n" "tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n" "and you are welcome to redistribute it under certain conditions;\n" @@ -696,7 +701,10 @@ int main(int argc, char **argv) { /* Slllluuuuuuurrrrp! */ - RAND_load_file("/dev/urandom", 1024); + if(RAND_load_file("/dev/urandom", 1024) != 1024) { + logger(LOG_ERR, "Error initializing RNG!"); + return 1; + } ENGINE_load_builtin_engines(); ENGINE_register_all_complete();