summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util/iteflash.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/util/iteflash.c b/util/iteflash.c
index ba6ba21159..a4a166d3d8 100644
--- a/util/iteflash.c
+++ b/util/iteflash.c
@@ -23,6 +23,7 @@
#include <sys/ioctl.h>
#include <time.h>
#include <unistd.h>
+#include <sys/wait.h>
#include "compile_time_macros.h"
#include "usb_if.h"
@@ -2267,15 +2268,18 @@ static int parse_parameters(int argc, char **argv, struct iteflash_config *conf)
static void sighandler(int signum)
{
+ int status;
printf("\nCaught signal %d: %s\nExiting...\n",
signum, strsignal(signum));
- exit_requested = 1;
+ wait(&status);
+ exit_requested = status;
}
static void register_sigaction(void)
{
struct sigaction sigact;
+ memset(&sigact, 0, sizeof(sigact));
sigact.sa_handler = sighandler;
sigemptyset(&sigact.sa_mask);
sigact.sa_flags = 0;