summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
Diffstat (limited to 'video')
-rw-r--r--video/out/vo_gpu_next.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/video/out/vo_gpu_next.c b/video/out/vo_gpu_next.c
index 37625bb5dd..c59ea8a014 100644
--- a/video/out/vo_gpu_next.c
+++ b/video/out/vo_gpu_next.c
@@ -1557,10 +1557,15 @@ static void save_cache_files(struct priv *p)
if (!target_file)
continue;
- char *tmp = talloc_asprintf(ta_ctx, "%s~", target_file);
- FILE *cache = fopen(tmp, "wb");
- if (!cache)
+ char *tmp = talloc_asprintf(ta_ctx, "%sXXXXXX", target_file);
+ int fd = mkstemp(tmp);
+ if (fd < 0)
continue;
+ FILE *cache = fdopen(fd, "wb");
+ if (!cache) {
+ close(fd);
+ continue;
+ }
int ret = pl_cache_save_file(target_cache, cache);
if (same_cache)
ret += pl_cache_save_file(p->icc_cache, cache);