Index | Thread | Search

From:
"Theo de Raadt" <deraadt@openbsd.org>
Subject:
Re: watch(1) - periodically execute a command and display its output
To:
Job Snijders <job@openbsd.org>
Cc:
tech@openbsd.org
Date:
Mon, 19 May 2025 18:50:03 -0600

Download raw body.

Thread
+void
+on_signal(int signum)
+{
+       quit();
+}
+
+void
+quit(void)
+{
+       erase();
+       refresh();
+       endwin();
+       free(cmdv);
+       exit(EXIT_SUCCESS);
+}

Over my dead body!

That is a massive collection of signal races.  I've never seen so many
in one place.  It cannot be done that way.  It must be a loop that inspects
a sig_atomic_t to perform these things.