aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2023-07-23 03:08:17 +0200
committerdec05eba <dec05eba@protonmail.com>2023-07-23 03:08:17 +0200
commit41883be88960e552c72d1e33ece6a74da9d89777 (patch)
treead3b388f43eba683d5054fce25f19f3a03b38546
parentbb88c4ee3a99c72bffb5387c9704f27e6aa5d9e4 (diff)
Proper waitpid NOHANG handling
-rw-r--r--kms/client/kms_client.c8
1 files 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)