]> wimlib.net Git - wimlib/blobdiff - src/modify.c
wimlib_add_image(): Fix variable name (--enable-debug only)
[wimlib] / src / modify.c
index fbbf1bf2abcc77502723ef7f50c6060b49cbd56c..5b8fe415c50dda5a5905200e906ad38316934722 100644 (file)
@@ -236,7 +236,7 @@ static int build_dentry_tree(struct dentry **root_ret,
                inode->attributes = FILE_ATTRIBUTE_DIRECTORY;
 
                DIR *dir;
-               struct dirent *p;
+               struct dirent entry, *result;
                struct dentry *child;
 
                dir = opendir(root_disk_path);
@@ -257,20 +257,20 @@ static int build_dentry_tree(struct dentry **root_ret,
                 * to any subdirectories. */
                while (1) {
                        errno = 0;
-                       p = readdir(dir);
-                       if (p == NULL) {
-                               if (errno) {
-                                       ret = WIMLIB_ERR_READ;
-                                       ERROR_WITH_ERRNO("Error reading the "
-                                                        "directory `%s'",
-                                                        root_disk_path);
-                               }
+                       ret = readdir_r(dir, &entry, &result);
+                       if (ret != 0) {
+                               ret = WIMLIB_ERR_READ;
+                               ERROR_WITH_ERRNO("Error reading the "
+                                                "directory `%s'",
+                                                root_disk_path);
                                break;
                        }
-                       if (p->d_name[0] == '.' && (p->d_name[1] == '\0'
-                             || (p->d_name[1] == '.' && p->d_name[2] == '\0')))
+                       if (result == NULL)
+                               break;
+                       if (result->d_name[0] == '.' && (result->d_name[1] == '\0'
+                             || (result->d_name[1] == '.' && result->d_name[2] == '\0')))
                                        continue;
-                       strcpy(name + len + 1, p->d_name);
+                       strcpy(name + len + 1, result->d_name);
                        ret = build_dentry_tree(&child, name, lookup_table,
                                                NULL, config, add_image_flags,
                                                progress_func, NULL);
@@ -998,7 +998,7 @@ WIMLIBAPI int wimlib_add_image(WIMStruct *w, const char *source,
                extra_arg = NULL;
        }
 
-       DEBUG("Adding dentry tree from directory or NTFS volume `%s'.", dir);
+       DEBUG("Adding dentry tree from directory or NTFS volume `%s'.", source);
 
        if (!name || !*name) {
                ERROR("Must specify a non-empty string for the image name");