Bugzilla – Bug 33316
uniform array will be allocate one line more and initialize it when it was freed will abort
Last modified: 2011-03-07 18:20:18 UTC
Platform: Piketon, Pineview
Bug detailed description:
Start X. Run the test case that tests with uniform arrays and free it after using, then the program will crash. A piglit case was in attachment.
1. start X
2. run my piglit case.
Ian, I think you can test with my test case written for piglit. If OK, can you help me check in the test case? And also cherry pick the following commit from mesa master to 7.9, 7.10 branch. Thanks.
Author: Jian Zhao <email@example.com>
Date: Wed Jan 5 10:41:20 2011 +0800
mesa: fix an error in uniform arrays in row calculating.
Fix the error in uniform row calculating, it may alloc one line
more which may cause out of range on memory usage, sometimes program
aborted when free the memory.
NOTE: This is a candidate for 7.9 and 7.10 branches.
Signed-off-by: Brian Paul <firstname.lastname@example.org>
Created attachment 42253 [details]
test case patch for test uniform array in piglit.
Created attachment 42255 [details]
patch for adding test case for test uniform array in piglit.
It seems Ian has cherry-picked the fix to 7.10 and 7.9 branch.
(In reply to comment #4)
> It seems Ian has cherry-picked the fix to 7.10 and 7.9 branch.
Yes. I forgot this had change had a bug associated with it because the bug number wasn't in the commit message. I believe that is because the bug came after the fix.
Fixed by e4c1bcacef9380bbf72f616dc4e6f72ff5741678 (7.9) and acc73692851b2b222833482851ce856ff267bff2 (7.10).
I'm a bit confused. I was going to commit the test (which needed a *LOT* of changes to be acceptable), but I don't see how that test really differs from the existing getuniform-01 test. Both are really just checking whether or not glGetUniformfv overruns the buffer passed to it.
If that's the case, then this bug is really just a dup of bug #29823 (which is not yet fixed). It also means we don't need this test.
Issues with the test:
- Use the piglit framework!
- Tests that don't check rendering results should do everything in piglit_init. piglit_display should return PIGLIT_FAIL.
- The test requries GLSL 1.20 but does not check for it.
- Limit code to 80 columns, and clean-up trailing white space.