[Beignet] [PATCH v3] GBE: Don't read past end of printf format string

Yang, Rong R rong.r.yang at intel.com
Thu Nov 5 22:59:51 PST 2015


Pushed.

> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
> Pan, Xiuli
> Sent: Friday, November 6, 2015 9:44
> To: 'Rebecca N. Palmer'; 'beignet at lists.freedesktop.org'
> Subject: Re: [Beignet] [PATCH v3] GBE: Don't read past end of printf format
> string
> 
> Ping for pushed.
> 
> -----Original Message-----
> From: Pan, Xiuli
> Sent: Wednesday, November 4, 2015 9:48 AM
> To: Rebecca N. Palmer <rebecca_palmer at zoho.com>;
> beignet at lists.freedesktop.org
> Subject: RE: [Beignet] [PATCH v3] GBE: Don't read past end of printf format
> string
> 
> LGTM, Thanks for your help!
> 
> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
> Rebecca N. Palmer
> Sent: Wednesday, November 4, 2015 6:19 AM
> To: beignet at lists.freedesktop.org
> Subject: Re: [Beignet] [PATCH v3] GBE: Don't read past end of printf format
> string
> 
> When p == end (the null terminator byte), don't try to read p + 1:
> as this is outside the string, it might be a '%' from a different object (causing
> __parse_printf_state(end + 2, end, ...) to be called, which will fail), or an
> invalid address.
> 
> Signed-off-by: Rebecca Palmer <rebecca_palmer at zoho.com>
> ---
>  backend/src/llvm/llvm_printf_parser.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/backend/src/llvm/llvm_printf_parser.cpp
> b/backend/src/llvm/llvm_printf_parser.cpp
> index bdaed8a..f427107 100644
> --- a/backend/src/llvm/llvm_printf_parser.cpp
> +++ b/backend/src/llvm/llvm_printf_parser.cpp
> @@ -229,7 +229,7 @@ again:
>          printf("string end with %%\n");
>          goto error;
>        }
> -      if (*(p + 1) == '%') { // %%
> +      if (p + 1 < end && *(p + 1) == '%') { // %%
>          p += 2;
>          goto again;
>        }
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list