X-Git-Url: https://git.librecmc.org/?p=oweals%2Fucert.git;a=blobdiff_plain;f=usign-exec.c;h=4ff2e63c5be166788534efc04bcb62a7c57fdbec;hp=21a24c2c7bf5a3031b1292aca12c11fc78b3a95b;hb=a9be4fb17df233fb9d23d3dae7aa6ce19fd7f38c;hpb=54be4d654308175cd95b16fb38e0260220db242b diff --git a/usign-exec.c b/usign-exec.c index 21a24c2..4ff2e63 100644 --- a/usign-exec.c +++ b/usign-exec.c @@ -72,13 +72,7 @@ int usign_s(const char *msgfile, const char *seckeyfile, const char *sigfile, bo return -1; case 0: - if ( -#ifdef UCERT_HOST_BUILD - execvp(usign_argv[0], usign_argv) -#else - execv(usign_argv[0], usign_argv) -#endif - ) + if (execvp(usign_argv[0], (char *const *)usign_argv)) return -1; break; @@ -141,13 +135,7 @@ static int usign_f(char *fingerprint, const char *pubkeyfile, const char *seckey close(fds[0]); close(fds[1]); - if ( -#ifdef UCERT_HOST_BUILD - execvp(usign_argv[0], usign_argv) -#else - execv(usign_argv[0], usign_argv) -#endif - ) + if (execvp(usign_argv[0], (char *const *)usign_argv)) return -1; break; @@ -156,9 +144,10 @@ static int usign_f(char *fingerprint, const char *pubkeyfile, const char *seckey waitpid(pid, &status, 0); status = WEXITSTATUS(status); if (fingerprint && !WEXITSTATUS(status)) { + ssize_t r; memset(fingerprint, 0, 17); - read(fds[0], fingerprint, 17); - if (fingerprint[16] != '\n') + r = read(fds[0], fingerprint, 17); + if (r < 16) status = -1; fingerprint[16] = '\0'; @@ -208,13 +197,13 @@ int usign_v(const char *msgfile, const char *pubkeyfile, if (usign_f_sig(fingerprint, sigfile)) { if (!quiet) - fprintf(stdout, "cannot get signing key fingerprint\n"); + fprintf(stderr, "cannot get signing key fingerprint\n"); return 1; } if (pubkeydir && _usign_key_is_revoked(fingerprint, pubkeydir)) { if (!quiet) - fprintf(stdout, "key %s has been revoked!\n", fingerprint); + fprintf(stderr, "key %s has been revoked!\n", fingerprint); return 1; } usign_argv[usign_argc++] = USIGN_EXEC; @@ -246,13 +235,7 @@ int usign_v(const char *msgfile, const char *pubkeyfile, return -1; case 0: - if ( -#ifdef UCERT_HOST_BUILD - execvp(usign_argv[0], usign_argv) -#else - execv(usign_argv[0], usign_argv) -#endif - ) + if (execvp(usign_argv[0], (char *const *)usign_argv)) return -1; break;