Code Review
/
src
/
app-framework-main.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
wgtpkg-unit: install/uninstall functions added
[src/app-framework-main.git]
/
src
/
afm-db.c
diff --git
a/src/afm-db.c
b/src/afm-db.c
index
638713e
..
a15255b
100644
(file)
--- 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;
DIR *dir;
int rc;
char *beg;
- struct dirent
entry,
*e;
+ struct dirent *e;
size_t len;
/* opens the directory */
size_t len;
/* opens the directory */
@@
-244,24
+244,28
@@
static int enumentries(struct enumdata *data, int (*callto)(struct enumdata *))
*beg++ = '/';
/* enumerate entries */
*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 */
/* prepare callto */
- len = strlen(e
ntry.
d_name);
+ len = strlen(e
->
d_name);
if (beg + len >= data->path + sizeof data->path) {
errno = ENAMETOOLONG;
return -1;
}
if (beg + len >= data->path + sizeof data->path) {
errno = ENAMETOOLONG;
return -1;
}
- data->length = (int)(stpcpy(beg, e
ntry.
d_name)
+ data->length = (int)(stpcpy(beg, e
->
d_name)
- data->path);
/* call the function */
rc = callto(data);
if (rc)
break;
}
- data->path);
/* call the function */
rc = callto(data);
if (rc)
break;
}
- rc = readdir_r(dir, &entry, &e);
}
closedir(dir);
return rc;
}
closedir(dir);
return rc;