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) {