diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index a157247a1e4524ebf067c0cd9d69e6a4f2d0a752..6bd2ce51271f3bd2778f91ec62b8bb0bee65d81c 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c @@ -593,8 +593,12 @@ static int genl_validate_ops(const struct genl_family *family) return -EINVAL; /* Check sort order */ - if (a->cmd < b->cmd) + if (a->cmd < b->cmd) { continue; + } else if (a->cmd > b->cmd) { + WARN_ON(1); + return -EINVAL; + } if (a->internal_flags != b->internal_flags || ((a->flags ^ b->flags) & ~(GENL_CMD_CAP_DO |