summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Syromyatnikov <evgsyr@gmail.com>2022-08-10 11:57:40 +0200
committerEugene Syromyatnikov <evgsyr@gmail.com>2022-08-11 14:34:17 +0200
commit58f134b650133e0e8dff13a27957f2fcc2718f61 (patch)
treeaa6e02a9745197652c94cf2a4f0758b0d19c8ac7
parent76af385a04f398ada97ef4d2b555045cba443da8 (diff)
downloadstrace-58f134b650133e0e8dff13a27957f2fcc2718f61.tar.gz
net: print unexpectedly short integer sockopts in hex
Since it makes little sence to print ASCII character codes when we know that the bytes are part of a number. * src/net.c (print_get_error, print_txrehash, print_getsockopt): Use printstr_ex with QUOTE_FORCE_HEX parameter instead of printstrn. * tests/sockopt-sol_socket.c: Update expected output.
-rw-r--r--src/net.c6
-rw-r--r--tests/sockopt-sol_socket.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/net.c b/src/net.c
index 4a499cd72..d7d12a121 100644
--- a/src/net.c
+++ b/src/net.c
@@ -696,7 +696,7 @@ print_get_error(struct tcb *const tcp, const kernel_ulong_t addr,
unsigned int err;
if (len < sizeof(err)) {
- printstrn(tcp, addr, len);
+ printstr_ex(tcp, addr, len, QUOTE_FORCE_HEX);
return;
}
@@ -719,7 +719,7 @@ print_txrehash(struct tcb *const tcp, const kernel_ulong_t addr, const int len)
if (entering(tcp))
printaddr(addr);
else
- printstrn(tcp, addr, len);
+ printstr_ex(tcp, addr, len, QUOTE_FORCE_HEX);
return;
}
@@ -872,7 +872,7 @@ print_getsockopt(struct tcb *const tcp, const unsigned int level,
if (rlen >= (int) sizeof(int))
printnum_int(tcp, addr, "%d");
else
- printstrn(tcp, addr, rlen);
+ printstr_ex(tcp, addr, rlen, QUOTE_FORCE_HEX);
return;
}
break;
diff --git a/tests/sockopt-sol_socket.c b/tests/sockopt-sol_socket.c
index 7aa58cb15..4907636fa 100644
--- a/tests/sockopt-sol_socket.c
+++ b/tests/sockopt-sol_socket.c
@@ -253,6 +253,8 @@ main(void)
printf("g%s", pfx_str);
if (rc < 0)
printf("%p", val);
+ else if (names[i].optsz)
+ print_quoted_hex(val, sizeof(*val) - 1);
else
print_quoted_memory(val, sizeof(*val) - 1);
printf(", [%d", (int) sizeof(*val) - 1);