diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index bc0e504f33a68ee92897cb3c45241d4d3348deba..a992083c0a64bc0db4c80bb4743937c05ce22977 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c @@ -185,7 +185,7 @@ static int genl_allocate_reserve_groups(int n_groups, int *first_id) } } - if (id >= mc_groups_longs * BITS_PER_LONG) { + if (id + n_groups >= mc_groups_longs * BITS_PER_LONG) { unsigned long new_longs = mc_groups_longs + BITS_TO_LONGS(n_groups); size_t nlen = new_longs * sizeof(unsigned long);