mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-18 22:14:16 +00:00 
			
		
		
		
	mm/memcg: use struct_size() helper in kzalloc()
Make use of the struct_size() helper instead of an open-coded version, in order to avoid any potential type mistakes or integer overflows that, in the worst scenario, could lead to heap overflows. Link: https://github.com/KSPP/linux/issues/160 Link: https://lkml.kernel.org/r/20211216022024.127375-1-wangweiyang2@huawei.com Signed-off-by: Wang Weiyang <wangweiyang2@huawei.com> Reviewed-by: Muchun Song <songmuchun@bytedance.com> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Michal Hocko <mhocko@kernel.org> Cc: Vladimir Davydov <vdavydov.dev@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									5b3be698a8
								
							
						
					
					
						commit
						06b2c3b08c
					
				
					 1 changed files with 1 additions and 5 deletions
				
			
		|  | @ -5122,15 +5122,11 @@ static void mem_cgroup_free(struct mem_cgroup *memcg) | |||
| static struct mem_cgroup *mem_cgroup_alloc(void) | ||||
| { | ||||
| 	struct mem_cgroup *memcg; | ||||
| 	unsigned int size; | ||||
| 	int node; | ||||
| 	int __maybe_unused i; | ||||
| 	long error = -ENOMEM; | ||||
| 
 | ||||
| 	size = sizeof(struct mem_cgroup); | ||||
| 	size += nr_node_ids * sizeof(struct mem_cgroup_per_node *); | ||||
| 
 | ||||
| 	memcg = kzalloc(size, GFP_KERNEL); | ||||
| 	memcg = kzalloc(struct_size(memcg, nodeinfo, nr_node_ids), GFP_KERNEL); | ||||
| 	if (!memcg) | ||||
| 		return ERR_PTR(error); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Wang Weiyang
						Wang Weiyang