The tcp_memory field in /proc/net/sockstat is formatted as
a long value by kernel. Change ss to keep this as full value.

Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
---
 misc/ss.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/misc/ss.c b/misc/ss.c
index 22c76e34f83b..c88a25581755 100644
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -4589,7 +4589,7 @@ static int get_snmp_int(const char *proto, const char 
*key, int *result)
 
 struct ssummary {
        int socks;
-       int tcp_mem;
+       long tcp_mem;
        int tcp_total;
        int tcp_orphans;
        int tcp_tws;
@@ -4629,7 +4629,7 @@ static void get_sockstat_line(char *line, struct ssummary 
*s)
        else if (strcmp(id, "FRAG6:") == 0)
                sscanf(rem, "%*s%d%*s%d", &s->frag6, &s->frag6_mem);
        else if (strcmp(id, "TCP:") == 0)
-               sscanf(rem, "%*s%d%*s%d%*s%d%*s%d%*s%d",
+               sscanf(rem, "%*s%d%*s%d%*s%d%*s%d%*s%ld",
                       &s->tcp4_hashed,
                       &s->tcp_orphans, &s->tcp_tws, &s->tcp_total, 
&s->tcp_mem);
 }
-- 
2.17.0

Reply via email to