gconv_parseconfdir: Fix memory leak

The allocated `conf` would leak if we have to skip over the file due
to the underlying filesystem not supporting dt_type.

Reviewed-by: Arjun Shankar <arjun@redhat.com>
This commit is contained in:
Siddhesh Poyarekar 2021-08-03 21:10:20 +05:30
parent b0234d79e7
commit 5f9b78fe35

View File

@ -153,12 +153,11 @@ gconv_parseconfdir (const char *dir, size_t dir_len)
struct stat64 st; struct stat64 st;
if (asprintf (&conf, "%s/%s", buf, ent->d_name) < 0) if (asprintf (&conf, "%s/%s", buf, ent->d_name) < 0)
continue; continue;
if (ent->d_type == DT_UNKNOWN
&& (lstat64 (conf, &st) == -1
|| !S_ISREG (st.st_mode)))
continue;
found |= read_conf_file (conf, dir, dir_len); if (ent->d_type != DT_UNKNOWN
|| (lstat64 (conf, &st) != -1 && S_ISREG (st.st_mode)))
found |= read_conf_file (conf, dir, dir_len);
free (conf); free (conf);
} }
} }