summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/main/shaderapi.c6
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) {