summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdisasm
diff options
context:
space:
mode:
authoreschrock <none@none>2006-03-10 09:32:27 -0800
committereschrock <none@none>2006-03-10 09:32:27 -0800
commitd79705c6da45734d3411280cc947a21452742849 (patch)
tree098893e94ed338f0cf0c3bb7c56e1cf13ecee061 /usr/src/lib/libdisasm
parent0e34b6a7bff4918432f0aa6b1dfaf73ac9df45b1 (diff)
downloadillumos-joyent-d79705c6da45734d3411280cc947a21452742849.tar.gz
6395714 ::dis -n 0 causes coredump on x86
6395718 ::dis truncates offsets for symbols 6395887 relative call addresses are decoded incorrectly on SPARC
Diffstat (limited to 'usr/src/lib/libdisasm')
-rw-r--r--usr/src/lib/libdisasm/i386/dis_i386.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/usr/src/lib/libdisasm/i386/dis_i386.c b/usr/src/lib/libdisasm/i386/dis_i386.c
index e499bd9ee0..3bcb4b3a71 100644
--- a/usr/src/lib/libdisasm/i386/dis_i386.c
+++ b/usr/src/lib/libdisasm/i386/dis_i386.c
@@ -189,6 +189,9 @@ dis_previnstr(dis_handle_t *dhp, uint64_t pc, int n)
int cur, nseen;
uint64_t res = pc;
+ if (n <= 0)
+ return (pc);
+
if (dhp->dh_lookup(dhp->dh_data, pc, NULL, 0, &start, NULL) != 0 ||
start == pc)
return (res);