From: Stephen Hemminger Date: Wed, 11 Jul 2007 01:26:54 +0000 (-0700) Subject: ss: fix issues with signed inodes X-Git-Tag: v2.6.23-071016~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e7113c61cbba87881ec1f4c321afc313be40b1ad;p=thirdparty%2Fiproute2.git ss: fix issues with signed inodes Some parts of ss were incorrectly assuming inode number was int not unsigned. --- diff --git a/misc/ss.c b/misc/ss.c index 156f672e7..0ac562b7e 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -105,9 +105,9 @@ struct filter }; struct filter default_filter = { - dbs: (1<idiag_uid) printf(" uid:%u", (unsigned)r->idiag_uid); - printf(" ino:%u", (unsigned)r->idiag_inode); + printf(" ino:%u", r->idiag_inode); printf(" sk:%08x", r->id.idiag_cookie[0]); if (r->id.idiag_cookie[1] != 0) printf("%08x", r->id.idiag_cookie[1]); @@ -1765,7 +1765,7 @@ int dgram_show_line(char *line, struct filter *f, int family) return 0; opt[0] = 0; - n = sscanf(data, "%x %x:%x %*x:%*x %*x %d %*d %d %d %llx %[^\n]\n", + n = sscanf(data, "%x %x:%x %*x:%*x %*x %d %*d %u %d %llx %[^\n]\n", &s.state, &s.wq, &s.rq, &s.uid, &s.ino, &s.refcnt, &s.sk, opt); @@ -1792,7 +1792,7 @@ int dgram_show_line(char *line, struct filter *f, int family) if (show_details) { if (s.uid) printf(" uid=%u", (unsigned)s.uid); - printf(" ino=%u", (unsigned)s.ino); + printf(" ino=%u", s.ino); printf(" sk=%llx", s.sk); if (opt[0]) printf(" opt:\"%s\"", opt); @@ -2800,7 +2800,6 @@ int main(int argc, char *argv[]) addr_width, "Local Address", serv_width, "Port", addr_width, "Peer Address", serv_width, "Port"); -//printf("%08x %08x %08x\n", current_filter.dbs, current_filter.states, current_filter.families); fflush(stdout); if (current_filter.dbs & (1<