From f40ea796ba5199efe703f9f0b2c7343d0fb8258f Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Fri, 1 Apr 2016 01:03:20 +0000 Subject: [PATCH] Consistently handle 2nd and 3rd arguments of [gs]etsockopt as unsigned The second (level) and third (optname) arguments of getsockopt and setsockopt syscalls are enums, so treat them consistently as enums: use "unsigned int" type to avoid potential sign extension issues. * net.c (print_sockopt_fd_level_name, print_getsockopt, print_setsockopt): Change type of "level" and "name" arguments from "int" to "unsigned int". --- net.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/net.c b/net.c index d79181ce..b6c2f085 100644 --- a/net.c +++ b/net.c @@ -1151,7 +1151,8 @@ SYS_FUNC(socketpair) #include "xlat/socktcpoptions.h" static void -print_sockopt_fd_level_name(struct tcb *tcp, int fd, int level, int name, bool is_getsockopt) +print_sockopt_fd_level_name(struct tcb *tcp, int fd, unsigned int level, + unsigned int name, bool is_getsockopt) { printfd(tcp, fd); tprints(", "); @@ -1269,7 +1270,8 @@ print_icmp_filter(struct tcb *tcp, long addr, int len) #endif /* ICMP_FILTER */ static void -print_getsockopt(struct tcb *tcp, int level, int name, long addr, int len) +print_getsockopt(struct tcb *tcp, unsigned int level, unsigned int name, + long addr, int len) { if (addr && verbose(tcp)) switch (level) { @@ -1465,7 +1467,8 @@ print_packet_mreq(struct tcb *tcp, long addr, int len) #endif /* PACKET_ADD_MEMBERSHIP */ static void -print_setsockopt(struct tcb *tcp, int level, int name, long addr, int len) +print_setsockopt(struct tcb *tcp, unsigned int level, unsigned int name, + long addr, int len) { if (addr && verbose(tcp)) switch (level) { -- 2.50.1