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 91566ed36c43070e1fe7889d00c302604fc821cc..2e11061ef885562d2ff2a098448a7d9c8d1b64ee 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;
 }