diff options
-rw-r--r-- | src/mesa/main/shaderapi.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index f23e9c00be5..e06ab00bb0b 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -37,6 +37,7 @@ */ +#include <errno.h> #include <stdbool.h> #include <c99_alloca.h> #include "main/glheader.h" @@ -1255,6 +1256,11 @@ link_program(struct gl_context *ctx, struct gl_shader_program *shProg, file = os_file_create_unique(filename, 0644); if (file) break; + /* If we are failing for another reason than "this filename already + * exists", we are likely to fail again with another filename, so + * let's just give up */ + if (errno != EEXIST) + break; ralloc_free(filename); } if (file) { |