mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	tracepoint: Use struct_size() in kmalloc()
One of the more common cases of allocation size calculations is finding
the size of a structure that has a zero-sized array at the end, along
with memory for some number of elements for that array. For example:
struct tp_probes {
	...
        struct tracepoint_func probes[0];
};
instance = kmalloc(sizeof(sizeof(struct tp_probes) +
			sizeof(struct tracepoint_func) * count, GFP_KERNEL);
Instead of leaving these open-coded and prone to type mistakes, we can
now use the new struct_size() helper:
instance = kmalloc(struct_size(instance, probes, count) GFP_KERNEL);
This code was detected with the help of Coccinelle.
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
			
			
This commit is contained in:
		
							parent
							
								
									86b3de60a0
								
							
						
					
					
						commit
						f0553dcb97
					
				
					 1 changed files with 2 additions and 2 deletions
				
			
		|  | @ -68,8 +68,8 @@ struct tp_probes { | ||||||
| 
 | 
 | ||||||
| static inline void *allocate_probes(int count) | static inline void *allocate_probes(int count) | ||||||
| { | { | ||||||
| 	struct tp_probes *p  = kmalloc(count * sizeof(struct tracepoint_func) | 	struct tp_probes *p  = kmalloc(struct_size(p, probes, count), | ||||||
| 			+ sizeof(struct tp_probes), GFP_KERNEL); | 				       GFP_KERNEL); | ||||||
| 	return p == NULL ? NULL : p->probes; | 	return p == NULL ? NULL : p->probes; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Gustavo A. R. Silva
						Gustavo A. R. Silva