Re: [PATCH net-next] genetlink: fix error return code in genl_register_family()
From: David Miller <davem@davemloft.net>
Date: 2016-10-31 20:29:33
From: David Miller <davem@davemloft.net>
Date: 2016-10-31 20:29:33
From: Wei Yongjun <redacted> Date: Mon, 31 Oct 2016 14:53:03 +0000
From: Wei Yongjun <redacted>
Fix to return error code -ENOMEM from the idr_alloc() error handling
case instead of 0, as done elsewhere in this function.
Fixes: 2ae0f17df1cd ("genetlink: use idr to track families")
Signed-off-by: Wei Yongjun <redacted>...
@@ -362,8 +362,10 @@ int genl_register_family(struct genl_family *family) family->id = idr_alloc(&genl_fam_idr, family, start, end + 1, GFP_KERNEL); - if (!family->id) + if (!family->id) { + err = -ENOMEM; goto errout_locked; + } err = genl_validate_assign_mc_groups(family); if (err)
idr_alloc() returns negative error codes, not zero, on failure. So we should return whatever idr_alloc() returns because it has at least two error return cases (ENOSPC and ENOMEM).