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:
parent
41e76d11df
commit
074792020c
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user