Re: [PATCH] dtc: Fix memory leak in character literal parsing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Sun, Dec 11, 2016 at 03:13:16PM -0500, Gabriel Smith wrote:
> The data struct used for parsing character literals was never freed
> resulting in a few bytes leaked for every character.
> 
> Signed-off-by: Gabriel Smith <ga29smith@xxxxxxxxx>

Nice catch.  Merged and pushed.

> ---
>  dtc-lexer.l | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/dtc-lexer.l b/dtc-lexer.l
> index 790fbf6..f252ab9 100644
> --- a/dtc-lexer.l
> +++ b/dtc-lexer.l
> @@ -184,16 +184,16 @@ static void lexical_error(const char *fmt, ...);
>  			if (d.len == 1) {
>  				lexical_error("Empty character literal");
>  				yylval.integer = 0;
> -				return DT_CHAR_LITERAL;
> -			}
> -
> -			yylval.integer = (unsigned char)d.val[0];
> +			} else {
> +				yylval.integer = (unsigned char)d.val[0];
>  
> -			if (d.len > 2)
> -				lexical_error("Character literal has %d"
> -					      " characters instead of 1",
> -					      d.len - 1);
> +				if (d.len > 2)
> +					lexical_error("Character literal has %d"
> +						      " characters instead of 1",
> +						      d.len - 1);
> +			}
>  
> +			data_free(d);
>  			return DT_CHAR_LITERAL;
>  		}
>  

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Device Tree]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux