]> granicus.if.org Git - strace/blobdiff - ipc_sem.c
Fix the length argument passed from print_iovec to decode_netlink
[strace] / ipc_sem.c
index abcfa857f279d5bf9e6fedb2e13a8ec4d358440d..4a7037839f3f8a6e15cf00d325f792409ce8eb97 100644 (file)
--- a/ipc_sem.c
+++ b/ipc_sem.c
@@ -57,7 +57,8 @@ print_sembuf(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
 #endif
 
 static void
-tprint_sembuf_array(struct tcb *tcp, const long addr, const unsigned long count)
+tprint_sembuf_array(struct tcb *const tcp, const kernel_ulong_t addr,
+                   const unsigned int count)
 {
 #if defined HAVE_SYS_SEM_H || defined HAVE_LINUX_SEM_H
        struct sembuf sb;
@@ -66,12 +67,12 @@ tprint_sembuf_array(struct tcb *tcp, const long addr, const unsigned long count)
 #else
        printaddr(addr);
 #endif
-       tprintf(", %lu", count);
+       tprintf(", %u", count);
 }
 
 SYS_FUNC(semop)
 {
-       tprintf("%lu, ", tcp->u_arg[0]);
+       tprintf("%d, ", (int) tcp->u_arg[0]);
        if (indirect_ipccall(tcp)) {
                tprint_sembuf_array(tcp, tcp->u_arg[3], tcp->u_arg[1]);
        } else {
@@ -82,7 +83,7 @@ SYS_FUNC(semop)
 
 SYS_FUNC(semtimedop)
 {
-       tprintf("%lu, ", tcp->u_arg[0]);
+       tprintf("%d, ", (int) tcp->u_arg[0]);
        if (indirect_ipccall(tcp)) {
                tprint_sembuf_array(tcp, tcp->u_arg[3], tcp->u_arg[1]);
                tprints(", ");
@@ -106,7 +107,7 @@ SYS_FUNC(semget)
                tprintf("%#x", key);
        else
                tprints("IPC_PRIVATE");
-       tprintf(", %lu, ", tcp->u_arg[1]);
+       tprintf(", %d, ", (int) tcp->u_arg[1]);
        if (printflags(resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
                tprints("|");
        print_numeric_umode_t(tcp->u_arg[2] & 0777);
@@ -115,7 +116,7 @@ SYS_FUNC(semget)
 
 SYS_FUNC(semctl)
 {
-       tprintf("%lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
+       tprintf("%d, %d, ", (int) tcp->u_arg[0], (int) tcp->u_arg[1]);
        PRINTCTL(semctl_flags, tcp->u_arg[2], "SEM_???");
        tprints(", ");
        if (indirect_ipccall(tcp)
@@ -125,7 +126,7 @@ SYS_FUNC(semctl)
           ) {
                printnum_ptr(tcp, tcp->u_arg[3]);
        } else {
-               tprintf("%#lx", tcp->u_arg[3]);
+               printaddr(tcp->u_arg[3]);
        }
        return RVAL_DECODED;
 }