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;
 		}