Hi tech@,

Using the GREATSCOTT[1] pattern to output in the ktrace signal handler,
dropping the need for an snprintf and the 8k stack buffer.

Brought to attention by BlackFrog on #openbsd-daily

Feedback, OK's?

Regards,
Adam

[1] - https://marc.info/?l=openbsd-tech&m=149613049920485&w=2
Index: ktrace.c
===================================================================
RCS file: /cvs/src/usr.bin/ktrace/ktrace.c,v
retrieving revision 1.33
diff -u -p -r1.33 ktrace.c
--- ktrace.c    18 Jul 2016 09:36:50 -0000      1.33
+++ ktrace.c    11 Jun 2017 16:58:32 -0000
@@ -250,10 +250,7 @@ usage(void)
 static void
 no_ktrace(int signo)
 {
-       char buf[8192];
-
-       snprintf(buf, sizeof(buf),
-"error:\tktrace() system call not supported in the running 
kernel\n\tre-compile kernel with 'option KTRACE'\n");
-       write(STDERR_FILENO, buf, strlen(buf));
+#define NO_KTRACE "error:\tktrace() system call not supported in the running 
kernel\n\tre-compile kernel with 'option KTRACE'\n"
+       write(STDERR_FILENO, NO_KTRACE, sizeof(NO_KTRACE));
        _exit(1);
 }

Reply via email to