Partly revert "shl: handle pathconf() errors"

This partly reverts commit 41e76d11dff6dd9bc08bf829751f9634f32cdd38. I
removed the "superfluous" errno-handling, which in fact is needed. Turns
out pathconf() might leave errno unchanged.

Reported-by: Lubomir Rintel <lkundrak@v3.sk>
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
This commit is contained in:
David Herrmann 2014-05-25 11:54:55 +02:00
parent 41e76d11df
commit 074792020c
2 changed files with 9 additions and 3 deletions

View File

@ -181,7 +181,7 @@ void kmscon_load_modules(void)
{
int ret;
DIR *ent;
struct dirent *buf = NULL, *de;
struct dirent *buf, *de;
char *file;
struct kmscon_module *mod;

View File

@ -54,9 +54,15 @@ static inline int shl_dirent(const char *path, struct dirent **ent)
struct dirent *tmp;
long name_max;
/* errno may be left unchanged, see pathconf(3p) */
errno = 0;
name_max = pathconf(path, _PC_NAME_MAX);
if (name_max < 0)
return -errno;
if (name_max < 0) {
if (errno)
return -errno;
else
return -EINVAL;
}
len = offsetof(struct dirent, d_name) + name_max + 1;
tmp = malloc(len);