Although we check for and/or create the interval_path right before,
there is still a possibility that the fopen call fails. Handle that
as if the file is unreadable.
Signed-off-by: Mark Wielaard <mark@klomp.org>
+2020-06-16 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (debuginfod_clean_cache): Handle failing
+ fopen (interval_path).
+
2020-03-29 Mark Wielaard <mark@klomp.org>
* debuginfod-client.c (debuginfod_add_http_header): Check header
/* Check timestamp of interval file to see whether cleaning is necessary. */
time_t clean_interval;
interval_file = fopen(interval_path, "r");
- if (fscanf(interval_file, "%ld", &clean_interval) != 1)
+ if (interval_file)
+ {
+ if (fscanf(interval_file, "%ld", &clean_interval) != 1)
+ clean_interval = cache_clean_default_interval_s;
+ fclose(interval_file);
+ }
+ else
clean_interval = cache_clean_default_interval_s;
- fclose(interval_file);
if (time(NULL) - st.st_mtime < clean_interval)
/* Interval has not passed, skip cleaning. */