]> granicus.if.org Git - strace/commitdiff
msghdr: cast pointers to kernel_ureg_t instead of long
authorDmitry V. Levin <ldv@altlinux.org>
Wed, 21 Dec 2016 15:36:50 +0000 (15:36 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sat, 24 Dec 2016 14:58:41 +0000 (14:58 +0000)
* msghdr.c (print_struct_msghdr): Cast msghdr.msg_name pointer
to kernel_ureg_t instead of long.
(dumpiov_in_msghdr): Cast msghdr.msg_iov pointer to kernel_ureg_t
instead of long.

msghdr.c

index 727d2ea92de4c2f4d6c161a284e6647ffcf4aa27..75efcd58d22f4c62d754ca8457787a6b8b6df8cd 100644 (file)
--- a/msghdr.c
+++ b/msghdr.c
@@ -340,7 +340,7 @@ print_struct_msghdr(struct tcb *tcp, const struct msghdr *msg,
 
        tprints("{msg_name=");
        const int family =
-               decode_sockaddr(tcp, (long) msg->msg_name, msg_namelen);
+               decode_sockaddr(tcp, (kernel_ureg_t) msg->msg_name, msg_namelen);
        const enum iov_decode decode =
                (family == AF_NETLINK) ? IOV_DECODE_NETLINK : IOV_DECODE_STR;
 
@@ -394,8 +394,10 @@ dumpiov_in_msghdr(struct tcb *tcp, long addr, unsigned long data_size)
 {
        struct msghdr msg;
 
-       if (fetch_struct_msghdr(tcp, addr, &msg))
-               dumpiov_upto(tcp, msg.msg_iovlen, (long)msg.msg_iov, data_size);
+       if (fetch_struct_msghdr(tcp, addr, &msg)) {
+               dumpiov_upto(tcp, msg.msg_iovlen,
+                            (kernel_ureg_t) msg.msg_iov, data_size);
+       }
 }
 
 SYS_FUNC(sendmsg)