mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 12:18:09 +02:00
Avoid a segfault in shader compilation
If a shader reaches an out-of-memory condition while adding a new function (reallocating the function list), a segfault will occur during cleanup (because the num_functions field is non-zero, but the functions pointer is NULL). This fixes that segfault by zeroing out the num_functions field if reallocation fails.
This commit is contained in:
parent
76b9da9e98
commit
359a58230e
1 changed files with 6 additions and 0 deletions
|
|
@ -2161,6 +2161,12 @@ parse_function(slang_parse_ctx * C, slang_output_ctx * O, int definition,
|
|||
(O->funs->num_functions + 1)
|
||||
* sizeof(slang_function));
|
||||
if (O->funs->functions == NULL) {
|
||||
/* Make sure that there are no functions marked, as the
|
||||
* allocation is currently NULL, in order to avoid
|
||||
* a potental segfault as we clean up later.
|
||||
*/
|
||||
O->funs->num_functions = 0;
|
||||
|
||||
slang_info_log_memory(C->L);
|
||||
slang_function_destruct(&parsed_func);
|
||||
return GL_FALSE;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue