]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
iproute2: misc/ss.c - fix run_ssfilter af_packet when protocol == 0
authorMaciej Żenczykowski <maze@google.com>
Thu, 25 Jun 2015 09:03:03 +0000 (02:03 -0700)
committerStephen Hemminger <shemming@brocade.com>
Thu, 25 Jun 2015 12:52:06 +0000 (08:52 -0400)
s->local.data is a pointer to a field of a non-NULL struct, and hence
cannot be NULL, thus comparing it to 0 is always false, and thus the
return is always false.

Presumably this was meant to be a check whether s->local.data[0] (which
I believe stores af_packet protocol) is 0, ie. ANY.

Change-Id: Ia232f5b06ce081e3b2fb6338f1a709cd94e03ae5
Fixes:
  ss.c:1018:37: error: comparison of array 's->local.data' equal to a null pointer is always false [-Werror,-Wtautological-pointer-compare]
    return s->lport == 0 && s->local.data == 0;
                            ~~~~~~~~~^~~~    ~
  1 error generated.

misc/ss.c

index 1f4a30f7b3798ce9e026b2a44d6f4f435f66340d..748e6930aaaeedcd40d344b6c94f01439381d1eb 100644 (file)
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -1081,7 +1081,7 @@ static int run_ssfilter(struct ssfilter *f, struct sockstat *s)
                                             strspn(p+1, "0123456789abcdef") == 5);
                }
                if (s->local.family == AF_PACKET)
-                       return s->lport == 0 && s->local.data == 0;
+                       return s->lport == 0 && s->local.data[0] == 0;
                if (s->local.family == AF_NETLINK)
                        return s->lport < 0;