Replace readdir_r to readdir. 61/105861/3
authorjin-gyu.kim <jin-gyu.kim@samsung.com>
Tue, 20 Dec 2016 01:02:19 +0000 (10:02 +0900)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Mon, 2 Jan 2017 14:44:56 +0000 (06:44 -0800)
- readdir_r causes warning in gnu11.

Change-Id: I237a5f9d56061807b94a1a261b95db58f19216e8

src/common/filesystem.cpp

index b7699bfc74094dbed723c421e2b6842d7c0eb98e..9613ab859d11d6841ff054b423a56f8bb74d4d62 100644 (file)
@@ -56,7 +56,7 @@ FileNameVector getFilesFromDirectory(const std::string &path)
 FileNameVector getDirContents(const std::string &path, const mode_t &mode)
 {
     FileNameVector result;
-    dirent tmp, *ptr;
+    dirent *ptr;
     int err;
     auto dir = makeUnique(opendir(path.c_str()), closedir);
 
@@ -66,14 +66,17 @@ FileNameVector getDirContents(const std::string &path, const mode_t &mode)
     }
 
     while (true) {
-        if (readdir_r(dir.get(), &tmp, &ptr)) {
-            err = errno;
-            ThrowMsg(FS::Exception::FileError, "Error reading directory: " << GetErrnoString(err));
-        }
-
-        if (!ptr)
+        errno = 0;
+        ptr = readdir(dir.get());
+
+        if (!ptr) {
+            if (errno) {
+                err = errno;
+                ThrowMsg(FS::Exception::FileError, "Error reading directory: " << GetErrnoString(err));
+            }
             break;
-
+        }
+        
         struct stat finfo;
         if (0 > fstatat(dirfd(dir.get()), ptr->d_name, &finfo, AT_SYMLINK_NOFOLLOW)) {
             ThrowMsg(FS::Exception::FileError, "Error reading: " << ptr->d_name);