aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/truss/i386-fbsd.c
diff options
context:
space:
mode:
authorAlfred Perlstein <alfred@FreeBSD.org>2004-07-17 19:48:49 +0000
committerAlfred Perlstein <alfred@FreeBSD.org>2004-07-17 19:48:49 +0000
commit2bae4eb30862565380ca4f43d5a24e30e7bdc7c8 (patch)
tree2aab56b03449877fe5d7c17ce3b50fc426abb64d /usr.bin/truss/i386-fbsd.c
parent969860f3edecccbc04bec207ad3f83989cae112a (diff)
downloadsrc-2bae4eb30862565380ca4f43d5a24e30e7bdc7c8.tar.gz
src-2bae4eb30862565380ca4f43d5a24e30e7bdc7c8.zip
Support readlink(2) better. Readlink does not nul terminate the
result buffer, so we need to format it ourselves. The problem is that the length is stored as the return value from readlink, so we need to pass the return value from our syscall into print_arg. Motivated by: truss garbage on my screen from reading /etc/malloc.conf.
Notes
Notes: svn path=/head/; revision=132308
Diffstat (limited to 'usr.bin/truss/i386-fbsd.c')
-rw-r--r--usr.bin/truss/i386-fbsd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/usr.bin/truss/i386-fbsd.c b/usr.bin/truss/i386-fbsd.c
index bbe651a0a9e1..dac6aa1269cf 100644
--- a/usr.bin/truss/i386-fbsd.c
+++ b/usr.bin/truss/i386-fbsd.c
@@ -217,7 +217,7 @@ i386_syscall_entry(struct trussinfo *trussinfo, int nargs) {
i < (fsc.nargs - 1) ? "," : "");
#endif
if (sc && !(sc->args[i].type & OUT)) {
- fsc.s_args[i] = print_arg(Procfd, &sc->args[i], fsc.args);
+ fsc.s_args[i] = print_arg(Procfd, &sc->args[i], fsc.args, 0);
}
}
#if DEBUG
@@ -321,7 +321,7 @@ i386_syscall_exit(struct trussinfo *trussinfo, int syscall_num __unused)
if (errorp)
asprintf(&temp, "0x%lx", fsc.args[sc->args[i].offset]);
else
- temp = print_arg(Procfd, &sc->args[i], fsc.args);
+ temp = print_arg(Procfd, &sc->args[i], fsc.args, retval);
fsc.s_args[i] = temp;
}
}