LGTM, but the commit line is too long, could you make the newlines by
hand to make sure the commit is readable for all situation like this.
Or we could help you to break the line into serval lines.
Also it seems the patch is made from git diff? Could you try to use
[git format-patch -s] to create patches and [--subject-prefix] to make
version, then use git send-email to send the patch to the mail list. It will
help us to make the patch apply easier. 

Here my analysis may help with your commit:
When p+1 is '%' the p will be end+2 and __parse_printf_state will return
error code, then this line's parse print format will be null. It will result in
a wrong message "Parse One printf inst failed, may have some error" 
(line 584) and some lines missing randomly, for the bug only occurs when
p+1 is '%' only.

You can try to read for l584 to figure out what I am talking about, hope
can enjoy to know how your patch help us.

Thanks
Xiuli Pan

-----Original Message-----
From: Beignet [mailto:[email protected]] On Behalf Of 
Rebecca N. Palmer
Sent: Tuesday, November 3, 2015 6:57 AM
To: [email protected]
Subject: Re: [Beignet] [PATCH v2] GBE: Don't read past end of printf format 
string

When p==end (the null terminator byte), don't try to read p+1 (outside the 
string, so might be an invalid address or a '%' from a different object).

Signed-off-by: Rebecca Palmer <[email protected]>

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
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to