svn commit: r192943 - head/usr.bin/truss
Giorgos Keramidas
keramida at freebsd.org
Thu May 28 02:30:40 UTC 2009
On Thu, 28 May 2009 00:38:24 +0000 (UTC), Xin LI <delphij at FreeBSD.org> wrote:
> Author: delphij
> Date: Thu May 28 00:38:24 2009
> New Revision: 192943
> URL: http://svn.freebsd.org/changeset/base/192943
>
> Log:
> Correct off-by-one issue in truss(1) which happens when system call number
> is nsyscalls.
>
> PR: bin/134916
> Submitted by: Steven Hartland <steven hartland multiplay co uk>
> MFC after: 2 weeks
Thank you!
I've been running with precisely the same patch locally for some time,
but didn't manage to get it tested well enough to commit it :-)
The only local diff I have now from /head is a minor change that wraps
lines that are at the same time already wrapped *and* too long. If that
looks useful as a followup change please feel free to use it:
%%%
diff -r b88f7e077f9c usr.bin/truss/amd64-fbsd.c
--- a/usr.bin/truss/amd64-fbsd.c Thu May 21 02:47:46 2009 +0000
+++ b/usr.bin/truss/amd64-fbsd.c Thu May 28 05:10:58 2009 +0300
@@ -141,8 +141,8 @@
}
fsc.number = syscall_num;
- fsc.name =
- (syscall_num < 0 || syscall_num > nsyscalls) ? NULL : syscallnames[syscall_num];
+ fsc.name = (syscall_num < 0 || syscall_num >= nsyscalls) ? NULL :
+ syscallnames[syscall_num];
if (!fsc.name) {
fprintf(trussinfo->outfile, "-- UNKNOWN SYSCALL %d --\n", syscall_num);
}
diff -r b88f7e077f9c usr.bin/truss/amd64-fbsd32.c
--- a/usr.bin/truss/amd64-fbsd32.c Thu May 21 02:47:46 2009 +0000
+++ b/usr.bin/truss/amd64-fbsd32.c Thu May 28 05:10:58 2009 +0300
@@ -151,8 +151,7 @@
}
fsc.number = syscall_num;
- fsc.name =
- (syscall_num < 0 || syscall_num > nsyscalls) ? NULL :
+ fsc.name = (syscall_num < 0 || syscall_num >= nsyscalls) ? NULL :
freebsd32_syscallnames[syscall_num];
if (!fsc.name) {
fprintf(trussinfo->outfile, "-- UNKNOWN SYSCALL %d --\n", syscall_num);
diff -r b88f7e077f9c usr.bin/truss/amd64-linux32.c
--- a/usr.bin/truss/amd64-linux32.c Thu May 21 02:47:46 2009 +0000
+++ b/usr.bin/truss/amd64-linux32.c Thu May 28 05:10:58 2009 +0300
@@ -123,8 +123,8 @@
syscall_num = regs.r_rax;
fsc.number = syscall_num;
- fsc.name =
- (syscall_num < 0 || syscall_num > nsyscalls) ? NULL : linux32_syscallnames[syscall_num];
+ fsc.name = (syscall_num < 0 || syscall_num >= nsyscalls) ? NULL :
+ linux32_syscallnames[syscall_num];
if (!fsc.name) {
fprintf(trussinfo->outfile, "-- UNKNOWN SYSCALL %d --\n", syscall_num);
}
diff -r b88f7e077f9c usr.bin/truss/i386-fbsd.c
--- a/usr.bin/truss/i386-fbsd.c Thu May 21 02:47:46 2009 +0000
+++ b/usr.bin/truss/i386-fbsd.c Thu May 28 05:10:58 2009 +0300
@@ -146,8 +146,8 @@
}
fsc.number = syscall_num;
- fsc.name =
- (syscall_num < 0 || syscall_num > nsyscalls) ? NULL : syscallnames[syscall_num];
+ fsc.name = (syscall_num < 0 || syscall_num >= nsyscalls) ? NULL :
+ syscallnames[syscall_num];
if (!fsc.name) {
fprintf(trussinfo->outfile, "-- UNKNOWN SYSCALL %d --\n", syscall_num);
}
diff -r b88f7e077f9c usr.bin/truss/i386-linux.c
--- a/usr.bin/truss/i386-linux.c Thu May 21 02:47:46 2009 +0000
+++ b/usr.bin/truss/i386-linux.c Thu May 28 05:10:58 2009 +0300
@@ -123,8 +123,8 @@
syscall_num = regs.r_eax;
fsc.number = syscall_num;
- fsc.name =
- (syscall_num < 0 || syscall_num > nsyscalls) ? NULL : linux_syscallnames[syscall_num];
+ fsc.name = (syscall_num < 0 || syscall_num >= nsyscalls) ? NULL :
+ linux_syscallnames[syscall_num];
if (!fsc.name) {
fprintf(trussinfo->outfile, "-- UNKNOWN SYSCALL %d --\n", syscall_num);
}
diff -r b88f7e077f9c usr.bin/truss/ia64-fbsd.c
--- a/usr.bin/truss/ia64-fbsd.c Thu May 21 02:47:46 2009 +0000
+++ b/usr.bin/truss/ia64-fbsd.c Thu May 28 05:10:58 2009 +0300
@@ -135,8 +135,8 @@
syscall_num = (int)*parm_offset++;
fsc.number = syscall_num;
- fsc.name = (syscall_num < 0 || syscall_num > nsyscalls)
- ? NULL : syscallnames[syscall_num];
+ fsc.name = (syscall_num < 0 || syscall_num >= nsyscalls) ? NULL :
+ syscallnames[syscall_num];
if (!fsc.name) {
fprintf(trussinfo->outfile, "-- UNKNOWN SYSCALL %d --\n", syscall_num);
}
diff -r b88f7e077f9c usr.bin/truss/powerpc-fbsd.c
--- a/usr.bin/truss/powerpc-fbsd.c Thu May 21 02:47:46 2009 +0000
+++ b/usr.bin/truss/powerpc-fbsd.c Thu May 28 05:10:58 2009 +0300
@@ -148,8 +148,8 @@
}
fsc.number = syscall_num;
- fsc.name =
- (syscall_num < 0 || syscall_num > nsyscalls) ? NULL : syscallnames[syscall_num];
+ fsc.name = (syscall_num < 0 || syscall_num >= nsyscalls) ? NULL :
+ syscallnames[syscall_num];
if (!fsc.name) {
fprintf(trussinfo->outfile, "-- UNKNOWN SYSCALL %d --\n", syscall_num);
}
diff -r b88f7e077f9c usr.bin/truss/sparc64-fbsd.c
--- a/usr.bin/truss/sparc64-fbsd.c Thu May 21 02:47:46 2009 +0000
+++ b/usr.bin/truss/sparc64-fbsd.c Thu May 28 05:10:58 2009 +0300
@@ -144,8 +144,8 @@
}
fsc.number = syscall_num;
- fsc.name =
- (syscall_num < 0 || syscall_num > nsyscalls) ? NULL : syscallnames[syscall_num];
+ fsc.name = (syscall_num < 0 || syscall_num >= nsyscalls) ? NULL :
+ syscallnames[syscall_num];
if (!fsc.name) {
fprintf(trussinfo->outfile, "-- UNKNOWN SYSCALL %d --\n", syscall_num);
}
%%%
More information about the svn-src-head
mailing list