[Mesa-dev] [PATCH shader-db] run: don't use alloca to avoid random crashes in the GLSL compiler

Marek Olšák maraeo at gmail.com
Sat Dec 10 01:32:54 UTC 2016


On Sat, Dec 10, 2016 at 2:07 AM, Timothy Arceri
<timothy.arceri at collabora.com> wrote:
> On Wed, 2016-12-07 at 18:33 +0100, Marek Olšák wrote:
>> From: Marek Olšák <marek.olsak at amd.com>
>>
>> ---
>>  run.c | 6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/run.c b/run.c
>> index 08fd543..ded224a 100644
>> --- a/run.c
>> +++ b/run.c
>> @@ -656,28 +656,32 @@ main(int argc, char **argv)
>>
>>              /* If there's only one GLSL shader, mark it separable so
>>               * inputs and outputs aren't eliminated.
>>               */
>>              if (num_shaders == 1 && type != TYPE_VP && type !=
>> TYPE_FP)
>>                  use_separate_shader_objects = true;
>>
>>              if (use_separate_shader_objects) {
>>                  for (unsigned i = 0; i < num_shaders; i++) {
>>                      const char *const_text;
>> -                    char *text = alloca(shader[i].length + 1);
>> +                    unsigned size = shader[i].length + 1000;
>
> I was hitting this crash also, shader[i].length + 1 worked for me.
>
> Assuming that changing it to + 1 works for you.
>
> Reviewed-by: Timothy Arceri <timothy.arceri at collabora.com>

Thanks. I've pushed the commit with that.

I'd also like to have some answers from valgrind, but that thing takes
forever to run.

Marek


More information about the mesa-dev mailing list