git://wimlib.net
/
wimlib
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
ab82c2b
)
read_dentry(): Ignore ReparseTag for non-reparse-points
author
Eric Biggers
<ebiggers3@gmail.com>
Mon, 8 Apr 2013 05:11:46 +0000
(
00:11
-0500)
committer
Eric Biggers
<ebiggers3@gmail.com>
Mon, 8 Apr 2013 05:11:46 +0000
(
00:11
-0500)
src/dentry.c
patch
|
blob
|
history
diff --git
a/src/dentry.c
b/src/dentry.c
index 7f0c1d068b09ba845acf22d72b9a5155f46f3d9b..97ad628f8a5df7ef5f3d27eac864aa4d40f4db4c 100644
(file)
--- a/
src/dentry.c
+++ b/
src/dentry.c
@@
-1443,19
+1443,16
@@
read_dentry(const u8 metadata_resource[], u64 metadata_resource_len,
p = get_bytes(p, SHA1_HASH_SIZE, inode->i_hash);
p = get_bytes(p, SHA1_HASH_SIZE, inode->i_hash);
- /*
- * I don't know what's going on here. It seems like M$ screwed up the
+ /* I don't know what's going on here. It seems like M$ screwed up the
* reparse points, then put the fields in the same place and didn't
* reparse points, then put the fields in the same place and didn't
- * document it. The WIM_HDR_FLAG_RP_FIX flag in the WIM header might
- * have something to do with this, but it's not documented.
- */
+ * document it. */
if (inode->i_attributes & FILE_ATTRIBUTE_REPARSE_POINT) {
if (inode->i_attributes & FILE_ATTRIBUTE_REPARSE_POINT) {
- /* ??? */
p += 4;
p = get_u32(p, &inode->i_reparse_tag);
p += 4;
} else {
p += 4;
p = get_u32(p, &inode->i_reparse_tag);
p += 4;
} else {
- p = get_u32(p, &inode->i_reparse_tag);
+ p += 4;
+ /* i_reparse_tag is irrelevant; just leave it at 0. */
p = get_u64(p, &inode->i_ino);
}
p = get_u64(p, &inode->i_ino);
}