X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Futils-dir.c;h=53e2cc5c0a337f43deb82ad34bf0f6b29acea487;hb=3a2efc3143d89d036794f2d8274794482cb2c961;hp=af0bcf0eebf25855f5c83a1b4063b1fb08a2e960;hpb=509d0ed17a1f59605b7d36f60561d0cafcadc9de;p=src%2Fapp-framework-main.git diff --git a/src/utils-dir.c b/src/utils-dir.c index af0bcf0..53e2cc5 100644 --- a/src/utils-dir.c +++ b/src/utils-dir.c @@ -1,5 +1,7 @@ /* - Copyright 2015 IoT.bzh + Copyright (C) 2015-2020 IoT.bzh + + author: José Bollo Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -31,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) { @@ -43,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; @@ -112,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; @@ -124,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); @@ -155,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); }