util/intelvbttool: Add error checking for memory allocation
It is possible that 'malloc_fo_sub' and 'remalloc_fo' can fail, so add appropriate error checks for those cases. This incidentally fixes a possible memory leak when 'malloc_fo_sub' succeeds but 'remalloc_fo' does not. Found-by: Coverity Scan #1396050 Signed-off-by: Jacob Garber <jgarber1@ualberta.ca> Change-Id: I944b67f5cdcfd7a687e81d8bb01a209c9dc9b0b8 Reviewed-on: https://review.coreboot.org/c/coreboot/+/32696 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org>
This commit is contained in:
		
				
					committed by
					
						 Patrick Georgi
						Patrick Georgi
					
				
			
			
				
	
			
			
			
						parent
						
							2be617b58b
						
					
				
				
					commit
					4fbd22e38d
				
			| @@ -788,7 +788,20 @@ static void parse_vbt(const struct fileobject *fo, | ||||
| 	} | ||||
|  | ||||
| 	/* Duplicate fo as caller is owner and remalloc frees the object */ | ||||
| 	*vbt = remalloc_fo(malloc_fo_sub(fo, 0), head->vbt_size); | ||||
| 	struct fileobject *dupfo = malloc_fo_sub(fo, 0); | ||||
| 	if (!dupfo) { | ||||
| 		printerr("malloc failed\n"); | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	struct fileobject *newfo = remalloc_fo(dupfo, head->vbt_size); | ||||
| 	if (!newfo) { | ||||
| 		printerr("remalloc failed\n"); | ||||
| 		free_fo(dupfo); | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	*vbt = newfo; | ||||
| } | ||||
|  | ||||
| /* Option ROM checksum */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user