genetlink: A genl_bind() to an out-of-range multicast group should not WARN().
authorDavid S. Miller <davem@davemloft.net>
Mon, 29 Dec 2014 21:31:49 +0000 (16:31 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Dec 2014 21:31:49 +0000 (16:31 -0500)
Users can request to bind to arbitrary multicast groups, so warning
when the requested group number is out of range is not appropriate.

And with the warning removed, and the 'err' variable properly given
an initial value, we can remove 'found' altogether.

Reported-by: Sedat Dilek <sedat.dilek@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netlink/genetlink.c

index 91566ed..2e11061 100644 (file)
@@ -985,8 +985,7 @@ static struct genl_multicast_group genl_ctrl_groups[] = {
 
 static int genl_bind(struct net *net, int group)
 {
-       int i, err;
-       bool found = false;
+       int i, err = 0;
 
        down_read(&cb_lock);
        for (i = 0; i < GENL_FAM_TAB_SIZE; i++) {
@@ -1003,16 +1002,12 @@ static int genl_bind(struct net *net, int group)
                                        err = f->mcast_bind(net, fam_grp);
                                else
                                        err = 0;
-                               found = true;
                                break;
                        }
                }
        }
        up_read(&cb_lock);
 
-       if (WARN_ON(!found))
-               err = 0;
-
        return err;
 }