]> wimlib.net Git - wimlib/blobdiff - src/ntfs-3g_apply.c
extract: track READONLY attribute in supported_features
[wimlib] / src / ntfs-3g_apply.c
index 9f06bbe6df763f94a62b640002aeeb8c86750b53..4b6bc394a99565941ca2a828e2a274dcc8e0b911 100644 (file)
@@ -54,9 +54,10 @@ static int
 ntfs_3g_get_supported_features(const char *target,
                               struct wim_features *supported_features)
 {
-       supported_features->archive_files             = 1;
+       supported_features->readonly_files            = 1;
        supported_features->hidden_files              = 1;
        supported_features->system_files              = 1;
+       supported_features->archive_files             = 1;
        supported_features->compressed_files          = 1;
        supported_features->not_context_indexed_files = 1;
        supported_features->named_data_streams        = 1;
@@ -322,9 +323,18 @@ ntfs_3g_restore_reparse_point(ntfs_inode *ni, const struct wim_inode *inode,
        if (ntfs_set_ntfs_reparse_data(ni, (const char *)&ctx->rpbuf,
                                       REPARSE_DATA_OFFSET + blob_size, 0))
        {
+               int err = errno;
                ERROR_WITH_ERRNO("Failed to set reparse data on \"%s\"",
                                 dentry_full_path(
                                        inode_first_extraction_dentry(inode)));
+               if (err == EINVAL && !(inode->i_reparse_tag & 0x80000000)) {
+                       WARNING("This reparse point had a non-Microsoft reparse "
+                               "tag.  The preceding error may have been caused "
+                               "by a known bug in libntfs-3g where it does not "
+                               "correctly validate non-Microsoft reparse "
+                               "points.  This bug may be fixed in the 2016 "
+                               "release of libntfs-3g.");
+               }
                return WIMLIB_ERR_SET_REPARSE_DATA;
        }
 
@@ -446,7 +456,7 @@ ntfs_3g_set_metadata(ntfs_inode *ni, const struct wim_inode *inode,
                                        "the security descriptor is invalid.  If you "
                                        "are extracting a Windows 10 image, this may be "
                                        "caused by a known bug in libntfs-3g.  See: "
-                                       "http://wimlib.net/forums/viewtopic.php?f=1&t=4 "
+                                       "https://wimlib.net/forums/viewtopic.php?f=1&t=4 "
                                        "for more information.\n\n");
                        }
                        return ret;