Messages in this thread Patch in this message | | | From | Colin King <> | Subject | [PATCH] genetlink: fix unsigned int comparison with less than zero | Date | Thu, 10 Nov 2016 15:57:58 +0000 |
| |
From: Colin Ian King <colin.king@canonical.com>
family->id is unsigned, so the less than zero check for failure return from idr_alloc is never true and so the error exit is never handled. Instead, assign err and check if this is less than zero since this is a signed integer.
Issue found with static analysis with CoverityScan, CID 1375916
Signed-off-by: Colin Ian King <colin.king@canonical.com> --- net/netlink/genetlink.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index f0b65fe..2ea61ba 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c @@ -360,12 +360,10 @@ int genl_register_family(struct genl_family *family) } else family->attrbuf = NULL; - family->id = idr_alloc(&genl_fam_idr, family, + family->id = err = idr_alloc(&genl_fam_idr, family, start, end + 1, GFP_KERNEL); - if (family->id < 0) { - err = family->id; + if (err < 0) goto errout_free; - } err = genl_validate_assign_mc_groups(family); if (err) -- 2.10.2
| |