Fix off-by-one bug causing core dump when encountering syscall with index
authorNicolas Thery <nth@dragonflybsd.org>
Thu, 27 Dec 2007 00:59:25 +0000 (00:59 +0000)
committerNicolas Thery <nth@dragonflybsd.org>
Thu, 27 Dec 2007 00:59:25 +0000 (00:59 +0000)
one past the last one known to truss.

DragonFly-bug: <http://bugs.dragonflybsd.org/issue891>

usr.bin/truss/i386-fbsd.c
usr.bin/truss/i386-linux.c

index 971581c..89bedd0 100644 (file)
@@ -29,7 +29,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/usr.bin/truss/i386-fbsd.c,v 1.7.2.2 2001/10/29 20:12:56 des Exp $
- * $DragonFly: src/usr.bin/truss/i386-fbsd.c,v 1.3 2003/11/04 15:34:41 eirikn Exp $
+ * $DragonFly: src/usr.bin/truss/i386-fbsd.c,v 1.4 2007/12/27 00:59:25 nth Exp $
  */
 
 /*
@@ -157,7 +157,7 @@ i386_syscall_entry(int pid, int nargs) {
 
   fsc.number = syscall;
   fsc.name =
-    (syscall < 0 || syscall > nsyscalls) ? NULL : syscallnames[syscall];
+    (syscall < 0 || syscall >= nsyscalls) ? NULL : syscallnames[syscall];
   if (!fsc.name) {
     fprintf(outfile, "-- UNKNOWN SYSCALL %d --\n", syscall);
   }
index 4261e74..a28c7df 100644 (file)
@@ -29,7 +29,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/usr.bin/truss/i386-linux.c,v 1.7.2.4 2002/02/15 11:43:51 des Exp $
- * $DragonFly: src/usr.bin/truss/i386-linux.c,v 1.4 2003/11/04 15:34:41 eirikn Exp $
+ * $DragonFly: src/usr.bin/truss/i386-linux.c,v 1.5 2007/12/27 00:59:25 nth Exp $
  */
 
 /*
@@ -116,7 +116,7 @@ i386_linux_syscall_entry(int pid, int nargs) {
 
   lsc.number = syscall;
   lsc.name =
-    (syscall < 0 || syscall > nsyscalls) ? NULL : linux_syscallnames[syscall];
+    (syscall < 0 || syscall >= nsyscalls) ? NULL : linux_syscallnames[syscall];
   if (!lsc.name) {
     fprintf (outfile, "-- UNKNOWN SYSCALL %d\n", syscall);
   }