diff options
author | Daiki Ueno <ueno@gnu.org> | 2020-10-18 17:58:49 +0200 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2020-10-18 19:22:35 +0200 |
commit | 38ef9af88193c42114548b0ad5776db0ac60e5d4 (patch) | |
tree | e486df99b1d12a5743ad3e06c71477cb378488a0 /src | |
parent | c4300904e80fb8f603938ebcc00b1a161df42726 (diff) | |
download | gnutls-38ef9af88193c42114548b0ad5776db0ac60e5d4.tar.gz |
serv: use only async-signal-safe functions in signal handlerstmp-src-fixes
Signed-off-by: Daiki Ueno <ueno@gnu.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/serv.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/serv.c b/src/serv.c index add0ee4065..258af18d81 100644 --- a/src/serv.c +++ b/src/serv.c @@ -1123,7 +1123,18 @@ static void terminate(int sig) __attribute__ ((__noreturn__)); static void terminate(int sig) { - fprintf(stderr, "Exiting via signal %d\n", sig); + char buf[64] = { 0 }; + char *p; + + /* This code must be async-signal-safe. */ + p = stpcpy(buf, "Exiting via signal "); + + if (sig > 10) + *p++ = '0' + sig / 10; + *p++ = '0' + sig % 10; + *p++ = '\n'; + + write(STDERR_FILENO, buf, p - buf); exit(1); } |