From 41883be88960e552c72d1e33ece6a74da9d89777 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 23 Jul 2023 03:08:17 +0200 Subject: [PATCH] Proper waitpid NOHANG handling --- kms/client/kms_client.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/kms/client/kms_client.c b/kms/client/kms_client.c index aab5b01..f92a222 100644 --- a/kms/client/kms_client.c +++ b/kms/client/kms_client.c @@ -252,11 +252,9 @@ int gsr_kms_client_init(gsr_kms_client *self, const char *card_path) { int status = 0; int wait_result = waitpid(self->kms_server_pid, &status, WNOHANG); if(wait_result != 0) { - fprintf(stderr, "gsr error: gsr_kms_client_init: kms server died or never started, error: %s\n", strerror(errno)); - self->kms_server_pid = -1; - goto err; - } else if(WIFEXITED(status)) { - int exit_code = WEXITSTATUS(status); + int exit_code = -1; + if(WIFEXITED(status)) + exit_code = WEXITSTATUS(status); fprintf(stderr, "gsr error: gsr_kms_client_init: kms server died or never started, exit code: %d\n", exit_code); self->kms_server_pid = -1; if(exit_code != 0)