From 81ad054a96bae16e96f600ad74f0a6bee79a83e7 Mon Sep 17 00:00:00 2001 From: Benjamin Poirier Date: Fri, 28 Jul 2017 13:25:14 -0700 Subject: [PATCH] tcptop: Filter out negative values in receive probe When tcp_cleanup_rbuf() is called from tcp_recvmsg(), "copied" may be an error code, especially -EAGAIN for non-blocking receives. --- tools/tcptop.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/tcptop.py b/tools/tcptop.py index 0f9ead6e..9ca10f62 100755 --- a/tools/tcptop.py +++ b/tools/tcptop.py @@ -148,6 +148,9 @@ int kprobe__tcp_cleanup_rbuf(struct pt_regs *ctx, struct sock *sk, int copied) u16 dport = 0, family = sk->__sk_common.skc_family; u64 *val, zero = 0; + if (copied <= 0) + return 0; + if (family == AF_INET) { struct ipv4_key_t ipv4_key = {.pid = pid}; ipv4_key.saddr = sk->__sk_common.skc_rcv_saddr; -- 2.34.1