Module Name: src
Committed By: mlelstv
Date: Sat Jan 4 22:05:53 UTC 2020
Modified Files:
src/usr.bin/ktruss: dump.c
Log Message:
validate signal and errno before trying to print.
To generate a diff of this commit:
cvs rdiff -u -r1.44 -r1.45 src/usr.bin/ktruss/dump.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/ktruss/dump.c
diff -u src/usr.bin/ktruss/dump.c:1.44 src/usr.bin/ktruss/dump.c:1.45
--- src/usr.bin/ktruss/dump.c:1.44 Sun Sep 22 22:59:40 2019
+++ src/usr.bin/ktruss/dump.c Sat Jan 4 22:05:52 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: dump.c,v 1.44 2019/09/22 22:59:40 christos Exp $ */
+/* $NetBSD: dump.c,v 1.45 2020/01/04 22:05:52 mlelstv Exp $ */
/*-
* Copyright (c) 1988, 1993
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 19
#if 0
static char sccsid[] = "@(#)kdump.c 8.4 (Berkeley) 4/28/95";
#endif
-__RCSID("$NetBSD: dump.c,v 1.44 2019/09/22 22:59:40 christos Exp $");
+__RCSID("$NetBSD: dump.c,v 1.45 2020/01/04 22:05:52 mlelstv Exp $");
#endif /* not lint */
#include <sys/param.h>
@@ -558,7 +558,10 @@ syscallprint(struct ktr_header *kth)
break;
case SYS_compat_16___sigaction14 :
- xwprintf("(%s", signals[(int)*ap].name);
+ if ((int)*ap < 0 || (int)*ap >= MAXSIGNALS)
+ xwprintf("(%s", signals[(int)*ap].name);
+ else
+ xwprintf("(%d", (int)*ap);
ap++;
argsize -= sizeof(register_t);
break;
@@ -630,7 +633,7 @@ sysretprint(struct ktr_header *kth)
xwprintf(" RESTART");
else if (error) {
xwprintf(" Err#%d", error);
- if (error < MAXERRNOS && error >= -2)
+ if (error < MAXERRNOS && error >= 0)
xwprintf(" %s", errnos[error].name);
} else
switch (ktr->ktr_code) {