From: José Bollo Date: Thu, 5 Jan 2017 16:09:55 +0000 (+0100) Subject: Remove use of deprecated readdir_r X-Git-Tag: x-last-without-systemd~33 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-main.git;a=commitdiff_plain;h=c07d1ea01ae008dc5aa379932b1d2da90d7d291c Remove use of deprecated readdir_r Change-Id: I55bd335f1a731e3a02fdb598c8bd869686269aab Signed-off-by: José Bollo --- diff --git a/src/afm-db.c b/src/afm-db.c index 638713e..a15255b 100644 --- a/src/afm-db.c +++ b/src/afm-db.c @@ -231,7 +231,7 @@ static int enumentries(struct enumdata *data, int (*callto)(struct enumdata *)) DIR *dir; int rc; char *beg; - struct dirent entry, *e; + struct dirent *e; size_t len; /* opens the directory */ @@ -244,24 +244,28 @@ static int enumentries(struct enumdata *data, int (*callto)(struct enumdata *)) *beg++ = '/'; /* enumerate entries */ - rc = readdir_r(dir, &entry, &e); - while (!rc && e) { - if (entry.d_name[0] != '.' || (entry.d_name[1] - && (entry.d_name[1] != '.' || entry.d_name[2]))) { + for(;;) { + errno = 0; + e = readdir(dir); + if (!e) { + rc = !errno - 1; + break; + } + if (e->d_name[0] != '.' || (e->d_name[1] + && (e->d_name[1] != '.' || e->d_name[2]))) { /* prepare callto */ - len = strlen(entry.d_name); + len = strlen(e->d_name); if (beg + len >= data->path + sizeof data->path) { errno = ENAMETOOLONG; return -1; } - data->length = (int)(stpcpy(beg, entry.d_name) + data->length = (int)(stpcpy(beg, e->d_name) - data->path); /* call the function */ rc = callto(data); if (rc) break; } - rc = readdir_r(dir, &entry, &e); } closedir(dir); return rc; diff --git a/src/utils-dir.c b/src/utils-dir.c index aef0a65..3c934fc 100644 --- a/src/utils-dir.c +++ b/src/utils-dir.c @@ -33,10 +33,6 @@ static int clean_dirfd(int dirfd) int rc; DIR *dir; struct dirent *ent; - struct { - struct dirent entry; - char spare[PATH_MAX]; - } entry; dir = fdopendir(dirfd); if (dir == NULL) { @@ -45,10 +41,13 @@ static int clean_dirfd(int dirfd) } for (;;) { rc = -1; - if (readdir_r(dir, &entry.entry, &ent) != 0) - goto error; - if (ent == NULL) + errno = 0; + ent = readdir(dir); + if (ent == NULL) { + if (errno) + goto error; break; + } if (ent->d_name[0] == '.' && (ent->d_name[1] == 0 || (ent->d_name[1] == '.' && ent->d_name[2] == 0))) continue;