X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Futils-dir.c;h=20e9ef55f68a3f31c08703ad34286d219ad30b9f;hb=2a319cf90daa6e3b01e8139923f7073e1c9bcf28;hp=af0bcf0eebf25855f5c83a1b4063b1fb08a2e960;hpb=509d0ed17a1f59605b7d36f60561d0cafcadc9de;p=src%2Fapp-framework-main.git diff --git a/src/utils-dir.c b/src/utils-dir.c index af0bcf0..20e9ef5 100644 --- a/src/utils-dir.c +++ b/src/utils-dir.c @@ -1,5 +1,7 @@ /* - Copyright 2015 IoT.bzh + Copyright (C) 2015-2019 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); }