diff options
author | Alfred Perlstein <alfred@FreeBSD.org> | 2004-07-17 19:48:49 +0000 |
---|---|---|
committer | Alfred Perlstein <alfred@FreeBSD.org> | 2004-07-17 19:48:49 +0000 |
commit | 2bae4eb30862565380ca4f43d5a24e30e7bdc7c8 (patch) | |
tree | 2aab56b03449877fe5d7c17ce3b50fc426abb64d /usr.bin/truss/i386-fbsd.c | |
parent | 969860f3edecccbc04bec207ad3f83989cae112a (diff) | |
download | src-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.c | 4 |
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; } } |