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".
This commit is contained in:
2016-04-01 01:03:20 +00:00
parent b0d23cc2c0
commit f40ea796ba

9
net.c
View File

@@ -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) {