#include <stdlib.h>
#include <stdarg.h>
+#include "dentry.h"
+
#ifdef WITH_NTFS_3G
#include <ntfs-3g/attrib.h>
#include <ntfs-3g/inode.h>
#include "lzx.h"
#include "xpress.h"
#include "sha1.h"
-#include "dentry.h"
#include <unistd.h>
#include <errno.h>
#ifdef HAVE_ALLOCA_H
wimlib_assert(lte->ntfs_loc != NULL);
wimlib_assert(lte->attr != NULL);
{
- u64 adjusted_offset;
if (lte->ntfs_loc->is_reparse_point)
- adjusted_offset = offset + 8;
- else
- adjusted_offset = offset;
+ offset += 8;
if (ntfs_attr_pread(lte->attr, offset, size, buf) != size) {
ERROR_WITH_ERRNO("Error reading NTFS attribute "
"at `%s'",
if (ret != 0)
goto out_free_buf;
- dentry_offset = imd->security_data->total_length + 7 & ~7;
+ dentry_offset = (imd->security_data->total_length + 7) & ~7;
if (dentry_offset == 0) {
ERROR("Integer overflow while reading metadata resource");
ret = read_dentry(buf, metadata_len, dentry_offset, dentry);
- /* This is the root dentry, so set its pointers correctly. */
+ /* This is the root dentry, so set its parent to itself. */
dentry->parent = dentry;
- dentry->next = dentry;
- dentry->prev = dentry;
+
if (ret != 0)
goto out_free_dentry_tree;
inode_add_dentry(dentry, dentry->d_inode);