+2022-05-04 Frank Ch. Eigler <fche@redhat.com>
+ Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (debuginfod_query_server): Correct fd leak
+ for cache negative-hit unlink case.
+ (debuginfod_config_cache, debuginfod_init_cache): Correct
+ minor fd leaks.
+ * debuginfod-find.c (main): Ditto.
+
2022-04-22 Mark Wielaard <mark@klomp.org>
* Makefile.am (libdebuginfod): Add -lpthread.
return -errno;
if (dprintf(fd, "%ld", cache_config_default_s) < 0)
- return -errno;
+ {
+ int ret = -errno;
+ close (fd);
+ return ret;
+ }
+
+ close (fd);
}
long cache_config;
return -errno;
if (dprintf(fd, "%ld", cache_clean_default_interval_s) < 0)
- return -errno;
+ {
+ int ret = -errno;
+ close (fd);
+ return ret;
+ }
+
+ close (fd);
/* init max age config file. */
if (stat(maxage_path, &st) != 0
return -errno;
if (dprintf(fd, "%ld", cache_default_max_unused_age_s) < 0)
- return -errno;
+ {
+ int ret = -errno;
+ close (fd);
+ return ret;
+ }
+ close (fd);
return 0;
}
has passed since the last attempt. */
time_t cache_miss;
time_t target_mtime = st.st_mtime;
+
+ close(fd); /* no need to hold onto the negative-hit file descriptor */
+
rc = debuginfod_config_cache(cache_miss_path,
cache_miss_default_s, &st);
if (rc < 0)
- {
- close(fd);
- goto out;
- }
+ goto out;
cache_miss = (time_t)rc;
if (time(NULL) - target_mtime <= cache_miss)
{
- close(fd);
rc = -ENOENT;
goto out;
}