Print unfetchable address in poll and ppoll decoders
* poll.c (decode_poll_entering): Replace umove call with
umove_or_printaddr.
(decode_poll_exiting): Print unfetchable address when umove call fails.
diff --git a/poll.c b/poll.c
index 4c3f19e..9dcaae2 100644
--- a/poll.c
+++ b/poll.c
@@ -82,10 +82,8 @@
tprints("...");
break;
}
- if (umove(tcp, cur, &fds) < 0) {
- tprints("???");
+ if (umove_or_printaddr(tcp, cur, &fds))
break;
- }
print_pollfd(tcp, &fds);
}
@@ -134,7 +132,7 @@
*outptr++ = '[';
else
outptr = stpcpy(outptr, ", ");
- outptr = stpcpy(outptr, "???");
+ outptr += sprintf(outptr, "%#lx", cur);
break;
}
if (!fds.revents)
@@ -154,8 +152,8 @@
const char *flagstr = sprintflags("", pollflags, fds.revents);
- if (outptr + strlen(fdstr) + strlen(flagstr) + 1
- >= end_outstr - sizeof(", ...], ...")) {
+ if (outptr + strlen(fdstr) + strlen(flagstr) + 1 >=
+ end_outstr - (2 + 2 * sizeof(long) + sizeof(", ], ..."))) {
outptr = stpcpy(outptr, "...");
break;
}