From aef7eb4cacbb241dc895f3e08dba4c91052a98a8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicolai=20H=C3=A4hnle?= Date: Thu, 3 Nov 2016 10:23:17 +0100 Subject: [PATCH] glsl/cache: correct asprintf error handling From the manpage of asprintf: "If memory allocation wasn't possible, or some other error occurs, these functions will return -1, and the contents of strp are undefined." Reviewed-by: Iago Toral Quiroga Reviewed-by: Edward O'Callaghan --- src/compiler/glsl/cache.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/compiler/glsl/cache.c b/src/compiler/glsl/cache.c index 64a34f06217..e74c27d3000 100644 --- a/src/compiler/glsl/cache.c +++ b/src/compiler/glsl/cache.c @@ -416,7 +416,8 @@ choose_random_file_matching(const char *dir_path, return NULL; } - asprintf(&filename, "%s/%s", dir_path, entry->d_name); + if (asprintf(&filename, "%s/%s", dir_path, entry->d_name) < 0) + filename = NULL; closedir(dir); @@ -497,8 +498,7 @@ evict_random_item(struct program_cache *cache) a = rand() % 16; b = rand() % 16; - asprintf (&dir_path, "%s/%c%c", cache->path, hex[a], hex[b]); - if (dir_path == NULL) + if (asprintf(&dir_path, "%s/%c%c", cache->path, hex[a], hex[b]) < 0) return; size = unlink_random_file_from_directory(dir_path); -- 2.30.2