]> wimlib.net Git - wimlib/blobdiff - src/iterate_dir.c
wimlib_iterate_dir_tree(): free d_full_path after using
[wimlib] / src / iterate_dir.c
index 451143a765f9015236345f40f01640e07d646a7a..9fed454ab6b45d63477e8ee1897820088b031eea 100644 (file)
@@ -91,12 +91,12 @@ init_wimlib_dentry(struct wimlib_dir_entry *wdentry, struct wim_dentry *dentry,
        const struct wim_inode_stream *strm;
        struct wimlib_unix_data unix_data;
 
-       ret = utf16le_get_tstr(dentry->file_name, dentry->file_name_nbytes,
+       ret = utf16le_get_tstr(dentry->d_name, dentry->d_name_nbytes,
                               &wdentry->filename, &dummy);
        if (ret)
                return ret;
 
-       ret = utf16le_get_tstr(dentry->short_name, dentry->short_name_nbytes,
+       ret = utf16le_get_tstr(dentry->d_short_name, dentry->d_short_name_nbytes,
                               &wdentry->dos_name, &dummy);
        if (ret)
                return ret;
@@ -104,7 +104,7 @@ init_wimlib_dentry(struct wimlib_dir_entry *wdentry, struct wim_dentry *dentry,
        ret = calculate_dentry_full_path(dentry);
        if (ret)
                return ret;
-       wdentry->full_path = dentry->_full_path;
+       wdentry->full_path = dentry->d_full_path;
 
        for (struct wim_dentry *d = dentry; !dentry_is_root(d); d = d->d_parent)
                wdentry->depth++;
@@ -219,6 +219,8 @@ do_iterate_dir_tree(WIMStruct *wim,
                }
        }
 out_free_wimlib_dentry:
+       FREE(dentry->d_full_path);
+       dentry->d_full_path = NULL;
        free_wimlib_dentry(wdentry);
 out:
        return ret;