]> granicus.if.org Git - strace/commitdiff
prctl.c: use printaddr and umove_or_printaddr
authorDmitry V. Levin <ldv@altlinux.org>
Fri, 17 Jul 2015 21:14:16 +0000 (21:14 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sat, 18 Jul 2015 00:01:40 +0000 (00:01 +0000)
* prctl.c (prctl_exit): Use printaddr and umove_or_printaddr.

prctl.c

diff --git a/prctl.c b/prctl.c
index 364a43d64c62080dbc5dbb5a70071a4a0213b0b1..e74809d0d28cc7b6c183a8155f39b5460276e09f 100644 (file)
--- a/prctl.c
+++ b/prctl.c
@@ -198,21 +198,15 @@ prctl_exit(struct tcb *tcp)
 
        case PR_GET_NAME:
                tprints(", ");
-               if (!tcp->u_arg[1])
-                       tprints("NULL");
-               else if (syserror(tcp))
-                       tprintf("%#lx", tcp->u_arg[1]);
+               if (syserror(tcp))
+                       printaddr(tcp->u_arg[1]);
                else
                        printstr(tcp, tcp->u_arg[1], -1);
                break;
 
        case PR_GET_PDEATHSIG:
                tprints(", ");
-               if (!tcp->u_arg[1])
-                       tprints("NULL");
-               else if (syserror(tcp) || umove(tcp, tcp->u_arg[1], &i) < 0)
-                       tprintf("%#lx", tcp->u_arg[1]);
-               else {
+               if (!umove_or_printaddr(tcp, tcp->u_arg[1], &i)) {
                        tprints("[");
                        tprints(signame(i));
                        tprints("]");
@@ -232,11 +226,7 @@ prctl_exit(struct tcb *tcp)
 
        case PR_GET_TSC:
                tprints(", ");
-               if (!tcp->u_arg[1])
-                       tprints("NULL");
-               else if (syserror(tcp) || umove(tcp, tcp->u_arg[1], &i) < 0)
-                       tprintf("%#lx", tcp->u_arg[1]);
-               else {
+               if (!umove_or_printaddr(tcp, tcp->u_arg[1], &i)) {
                        tprints("[");
                        printxval(pr_tsc, i, "PR_TSC_???");
                        tprints("]");
@@ -245,11 +235,7 @@ prctl_exit(struct tcb *tcp)
 
        case PR_GET_UNALIGN:
                tprints(", ");
-               if (!tcp->u_arg[1])
-                       tprints("NULL");
-               else if (syserror(tcp) || umove(tcp, tcp->u_arg[1], &i) < 0)
-                       tprintf("%#lx", tcp->u_arg[1]);
-               else {
+               if (!umove_or_printaddr(tcp, tcp->u_arg[1], &i)) {
                        tprints("[");
                        printflags(pr_unalign_flags, i, "PR_UNALIGN_???");
                        tprints("]");