X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Futils-dir.c;h=53e2cc5c0a337f43deb82ad34bf0f6b29acea487;hb=HEAD;hp=31bfd8a442ee402004d20b1f4fec4bd860b6c63e;hpb=c0fc18e47e49dd4e3cc2f09452a19297dad63f9c;p=src%2Fapp-framework-main.git diff --git a/src/utils-dir.c b/src/utils-dir.c index 31bfd8a..53e2cc5 100644 --- a/src/utils-dir.c +++ b/src/utils-dir.c @@ -1,5 +1,5 @@ /* - Copyright 2015 IoT.bzh + Copyright (C) 2015-2020 IoT.bzh author: José Bollo @@ -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; @@ -114,9 +113,10 @@ int remove_directory_at(int dirfd, const char *directory, int force) } /* create a directory */ -int create_directory_at(int dirfd, const char *directory, int mode, int mkparents) +int create_directory_at(int dirfd, const char *directory, mode_t mode, int mkparents) { - int rc, len, l; + int rc; + size_t len, l; char *copy; const char *iter; @@ -126,7 +126,7 @@ int create_directory_at(int dirfd, const char *directory, int mode, int mkparent /* check parent of dest */ iter = strrchr(directory, '/'); - len = iter ? iter - directory : 0; + len = iter ? (size_t)(iter - directory) : 0; if (!len) return rc; copy = strndupa(directory, len); @@ -157,7 +157,7 @@ int create_directory_at(int dirfd, const char *directory, int mode, int mkparent return mkdirat(dirfd, directory, mode); } -int create_directory(const char *directory, int mode, int mkparents) +int create_directory(const char *directory, mode_t mode, int mkparents) { return create_directory_at(AT_FDCWD, directory, mode, mkparents); }