The NODEMASK_ALLOC macro may dynamically allocate memory for its second
argument ('nodes_allowed' in this context).
In nr_hugepages_store_common() we may abort early if strict_strtoul()
fails, but in that case we do not free the memory already allocated to
'nodes_allowed', causing a memory leak.
This patch closes the leak by freeing the memory in the error path.
[
[email protected]: use NODEMASK_FREE, per Minchan Kim]
Signed-off-by: Jesper Juhl <[email protected]>
Cc: Minchan Kim <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
NODEMASK_ALLOC(nodemask_t, nodes_allowed, GFP_KERNEL | __GFP_NORETRY);
err = strict_strtoul(buf, 10, &count);
- if (err)
+ if (err) {
+ NODEMASK_FREE(nodes_allowed);
return 0;
+ }
h = kobj_to_hstate(kobj, &nid);
if (nid == NUMA_NO_NODE) {