genetlink: add explicit ordering break check for split ops
Currently, if cmd in the split ops array is of lower value than the previous one, genl_validate_ops() continues to do the checks as if the values are equal. This may result in non-obvious WARN_ON() hit in these check. Instead, check the incorrect ordering explicitly and put a WARN_ON() in case it is broken. Signed-off-by: Jiri Pirko <jiri@nvidia.com> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Link: https://lore.kernel.org/r/20230720111354.562242-1-jiri@resnulli.us Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
070e8bd31b
commit
5766946ea5
@ -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 |
|
||||
|
Loading…
Reference in New Issue
Block a user