ACK: [PATCH] bios: mtrr: fix memory leak on mtrr entries

Alex Hung alex.hung at canonical.com
Thu May 21 22:49:50 UTC 2015


On 05/14/2015 04:33 AM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
> 
> CoverityScan picked up a memory leak on the allocated entries that
> don't get added to the mttr entry list when they fail specific
> filtering criteria.
> 
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>  src/bios/mtrr/mtrr.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/src/bios/mtrr/mtrr.c b/src/bios/mtrr/mtrr.c
> index 8bec28b..c86090f 100644
> --- a/src/bios/mtrr/mtrr.c
> +++ b/src/bios/mtrr/mtrr.c
> @@ -119,18 +119,24 @@ static int get_mtrrs(void)
>  		 */
>  
>  		/* Get register, in decimal  */
> -		if (strncmp(line, "reg", 3))
> +		if (strncmp(line, "reg", 3)) {
> +			free(entry);
>  			continue;
> +		}
>  		entry->reg = strtoul(line + 3, NULL, 10);
>  
>  		/* Get base, in hex */
> -		if ((ptr1 = strstr(line, "base=0x")) == NULL)
> +		if ((ptr1 = strstr(line, "base=0x")) == NULL) {
> +			free(entry);
>  			continue;
> +		}
>  		entry->start = strtoull(ptr1 + 5, NULL, 16);
>  
>  		/* Get size, in decimal */
> -		if ((ptr1 = strstr(line, "size=")) == NULL)
> +		if ((ptr1 = strstr(line, "size=")) == NULL) {
> +			free(entry);
>  			continue;
> +		}
>  
>  		entry->size = strtoull(ptr1 + 5, &ptr2, 10);
>  		if (ptr2 && (*ptr2 == 'm'))
> 


Acked-by: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list