]> granicus.if.org Git - strace/blobdiff - block.c
Fix the length argument passed from print_iovec to decode_netlink
[strace] / block.c
diff --git a/block.c b/block.c
index e566f8cfe15c60a5840aea48b70eeaad1c98a2f4..4d1a965b40b59d83210047f2e308e9f2b7e944ac 100644 (file)
--- a/block.c
+++ b/block.c
@@ -129,7 +129,7 @@ print_blkpg_req(struct tcb *tcp, const struct_blkpg_ioctl_arg *blkpg)
        tprintf(", flags=%d, datalen=%d, data=",
                blkpg->flags, blkpg->datalen);
 
-       if (!umove_or_printaddr(tcp, (long) blkpg->data, &p)) {
+       if (!umove_or_printaddr(tcp, ptr_to_kulong(blkpg->data), &p)) {
                tprintf("{start=%" PRId64 ", length=%" PRId64
                        ", pno=%d, devname=",
                        p.start, p.length, p.pno);
@@ -143,14 +143,14 @@ print_blkpg_req(struct tcb *tcp, const struct_blkpg_ioctl_arg *blkpg)
        tprints("}");
 }
 
-MPERS_PRINTER_DECL(int, block_ioctl, struct tcb *tcp,
-                  const unsigned int code, const long arg)
+MPERS_PRINTER_DECL(int, block_ioctl, struct tcb *const tcp,
+                  const unsigned int code, const kernel_ulong_t arg)
 {
        switch (code) {
        /* take arg as a value, not as a pointer */
        case BLKRASET:
        case BLKFRASET:
-               tprintf(", %lu", arg);
+               tprintf(", %" PRI_klu, arg);
                break;
 
        /* return an unsigned short */