]> wimlib.net Git - wimlib/blobdiff - src/ntfs-capture.c
ads entries
[wimlib] / src / ntfs-capture.c
index 6751754782e8a1782985930f7df3defe25f17e1e..bc7bc954c66ba6767de9871ce676a2767bf55c51 100644 (file)
 #include <unistd.h>
 #include <errno.h>
 
-#if 0
-extern int ntfs_get_inode_security(ntfs_inode *ni, u32 selection, char *buf,
-                                  u32 buflen, u32 *psize);
-
-extern u32 ntfs_get_inode_attributes(ntfs_inode *ni);
-#endif
-
 /* Structure that allows searching the security descriptors by SHA1 message
  * digest. */
 struct sd_set {
@@ -257,7 +250,6 @@ static int capture_ntfs_streams(struct dentry *dentry, ntfs_inode *ni,
                                ntfs_volume **ntfs_vol_p,
                                ATTR_TYPES type)
 {
-
        ntfs_attr_search_ctx *actx;
        u8 attr_hash[SHA1_HASH_SIZE];
        struct ntfs_location *ntfs_loc = NULL;
@@ -458,7 +450,7 @@ static int wim_ntfs_capture_filldir(void *dirent, const ntfschar *name,
        ntfs_inode *ni = ntfs_inode_open(ctx->dir_ni->vol, mref);
        if (!ni) {
                ERROR_WITH_ERRNO("Failed to open NTFS inode");
-               ret = 1;
+               goto out_free_utf8_name;
        }
        path_len = ctx->path_len;
        if (path_len != 1)
@@ -498,8 +490,6 @@ static int change_dentry_short_name(struct dentry *dentry,
        return 0;
 }
 
-/*#define HAVE_NTFS_INODE_FUNCTIONS*/
-
 /* Recursively build a WIM dentry tree corresponding to a NTFS volume.
  * At the same time, update the WIM lookup table with lookup table entries for
  * the NTFS streams, and build an array of security descriptors.
@@ -524,9 +514,6 @@ static int build_dentry_tree_ntfs_recursive(struct dentry **root_p,
        struct dentry *root;
 
        mrec_flags = ni->mrec->flags;
-#ifdef HAVE_NTFS_INODE_FUNCTIONS
-       attributes = ntfs_get_inode_attributes(ni);
-#else
        struct SECURITY_CONTEXT ctx;
        memset(&ctx, 0, sizeof(ctx));
        ctx.vol = ni->vol;
@@ -538,7 +525,6 @@ static int build_dentry_tree_ntfs_recursive(struct dentry **root_p,
                                 path);
                return WIMLIB_ERR_NTFS_3G;
        }
-#endif
 
        if (exclude_path(path, config, false)) {
                if (flags & WIMLIB_ADD_IMAGE_FLAG_VERBOSE) {
@@ -557,7 +543,7 @@ static int build_dentry_tree_ntfs_recursive(struct dentry **root_p,
        if (flags & WIMLIB_ADD_IMAGE_FLAG_VERBOSE)
                printf("Scanning `%s'\n", path);
 
-       root = new_dentry_with_inode(path_basename(path));
+       root = new_dentry_with_timeless_inode(path_basename(path));
        if (!root)
                return WIMLIB_ERR_NOMEM;
        *root_p = root;
@@ -625,41 +611,6 @@ static int build_dentry_tree_ntfs_recursive(struct dentry **root_p,
        if (ret != 0)
                return ret;
 
-#ifdef HAVE_NTFS_INODE_FUNCTIONS
-       ret = ntfs_get_inode_security(ni,
-                                     OWNER_SECURITY_INFORMATION |
-                                     GROUP_SECURITY_INFORMATION |
-                                     DACL_SECURITY_INFORMATION  |
-                                     SACL_SECURITY_INFORMATION,
-                                     NULL, 0, &sd_size);
-       char sd[sd_size];
-       ret = ntfs_get_inode_security(ni,
-                                     OWNER_SECURITY_INFORMATION |
-                                     GROUP_SECURITY_INFORMATION |
-                                     DACL_SECURITY_INFORMATION  |
-                                     SACL_SECURITY_INFORMATION,
-                                     sd, sd_size, &sd_size);
-       if (ret == 0) {
-               ERROR_WITH_ERRNO("Failed to get security information from "
-                                "`%s'", path);
-               ret = WIMLIB_ERR_NTFS_3G;
-       } else {
-               if (ret > 0) {
-                       /*print_security_descriptor(sd, sd_size);*/
-                       root->security_id = sd_set_add_sd(sd_set, sd, ret);
-                       if (root->security_id == -1) {
-                               ERROR("Out of memory");
-                               return WIMLIB_ERR_NOMEM;
-                       }
-                       DEBUG("Added security ID = %u for `%s'",
-                             root->security_id, path);
-               } else { 
-                       root->security_id = -1;
-                       DEBUG("No security ID for `%s'", path);
-               }
-               ret = 0;
-       }
-#else
        char _sd[1];
        char *sd = _sd;
        errno = 0;
@@ -688,7 +639,6 @@ static int build_dentry_tree_ntfs_recursive(struct dentry **root_p,
                root->inode->security_id = -1;
                DEBUG("No security ID for `%s'", path);
        }
-#endif
        return ret;
 }