From 965295ecfb2b5aba301f7404d3f8442f034d42ea Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Tue, 2 Aug 2011 08:52:16 +0000 Subject: [PATCH] fix double-waitpid here too --- .../gnunet-transport-certificate-creation.c | 52 +++---------------- 1 file changed, 8 insertions(+), 44 deletions(-) diff --git a/src/transport/gnunet-transport-certificate-creation.c b/src/transport/gnunet-transport-certificate-creation.c index 22d3d08f9..258c9e69a 100644 --- a/src/transport/gnunet-transport-certificate-creation.c +++ b/src/transport/gnunet-transport-certificate-creation.c @@ -35,12 +35,12 @@ removecerts (const char *file1, { if (GNUNET_DISK_file_test (file1) == GNUNET_YES) { - CHMOD (file1, 0777); + CHMOD (file1, S_IWUSR | S_IRUSR); REMOVE (file1); } if (GNUNET_DISK_file_test (file2) == GNUNET_YES) { - CHMOD (file2, 0777); + CHMOD (file2, S_IWUSR | S_IRUSR); REMOVE (file2); } } @@ -50,13 +50,11 @@ int main (int argc, char **argv) { struct GNUNET_OS_Process *openssl; - enum GNUNET_OS_ProcessStatusType status_type; - unsigned long code; if (argc != 3) return 1; - close (2); /* no output to stderr */ removecerts (argv[1], argv[2]); + close (2); /* eliminate stderr */ /* Create RSA Private Key */ /* openssl genrsa -out $1 1024 2> /dev/null */ openssl = GNUNET_OS_start_process (NULL, NULL, @@ -66,24 +64,7 @@ main (int argc, char **argv) NULL); if (openssl == NULL) return 2; - if (GNUNET_OS_process_wait (openssl) != GNUNET_OK) - { - GNUNET_OS_process_kill (openssl, SIGTERM); - removecerts (argv[1], argv[2]); - return 3; - } - if (GNUNET_OS_process_status (openssl, &status_type, &code) != GNUNET_OK) - { - GNUNET_OS_process_kill (openssl, SIGTERM); - removecerts (argv[1], argv[2]); - return 4; - } - if (status_type != GNUNET_OS_PROCESS_EXITED || code != 0) - { - GNUNET_OS_process_kill (openssl, SIGTERM); - removecerts (argv[1], argv[2]); - return 5; - } + GNUNET_assert (GNUNET_OS_process_wait (openssl) == GNUNET_OK); GNUNET_OS_process_close (openssl); /* Create a self-signed certificate in batch mode using rsa key*/ @@ -95,28 +76,11 @@ main (int argc, char **argv) "-out", argv[2], "-new", "-x509", "-key", argv[1], NULL); if (openssl == NULL) - return 6; - if (GNUNET_OS_process_wait (openssl) != GNUNET_OK) - { - GNUNET_OS_process_kill (openssl, SIGTERM); - removecerts (argv[1], argv[2]); - return 7; - } - if (GNUNET_OS_process_status (openssl, &status_type, &code) != GNUNET_OK) - { - GNUNET_OS_process_kill (openssl, SIGTERM); - removecerts (argv[1], argv[2]); - return 8; - } - if (status_type != GNUNET_OS_PROCESS_EXITED || code != 0) - { - GNUNET_OS_process_kill (openssl, SIGTERM); - removecerts (argv[1], argv[2]); - return 9; - } + return 3; + GNUNET_assert (GNUNET_OS_process_wait (openssl) == GNUNET_OK); GNUNET_OS_process_close (openssl); - CHMOD (argv[1], 0400); - CHMOD (argv[2], 0400); + CHMOD (argv[1], S_IRUSR); + CHMOD (argv[2], S_IRUSR); return 0; } -- 2.25.1