It can return -1 (feature not supported, denied by a security module, etc.),
resulting in wrong allocation later on.
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
(remove superfluous errno-checks)
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
{
int ret;
DIR *ent;
- struct dirent *buf, *de;
+ struct dirent *buf = NULL, *de;
char *file;
struct kmscon_module *mod;
{
size_t len;
struct dirent *tmp;
+ long name_max;
- len = offsetof(struct dirent, d_name) +
- pathconf(path, _PC_NAME_MAX) + 1;
+ name_max = pathconf(path, _PC_NAME_MAX);
+ if (name_max < 0)
+ return -errno;
+
+ len = offsetof(struct dirent, d_name) + name_max + 1;
tmp = malloc(len);
if (!tmp)
return -ENOMEM;