Thread (4 messages) 4 messages, 2 authors, 2016-11-01

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: 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>
 ...
quoted hunk ↗ jump to hunk
@@ -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).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help