[PATCH 1/2] metadump: Fill attribute values with 'v' rather than NUL
Eric Sandeen
sandeen at sandeen.net
Mon Jul 6 13:16:34 CDT 2015
Rather than memset attribute values to '\0', use the character 'v' -
otherwise in some cases we get attributes with a non-zero value
length which start with a NUL, and that makes some userspace tools
unhappy, yielding results like this:
security.oO^Lio.=0sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
Signed-off-by: Eric Sandeen <sandeen at redhat.com>
---
diff --git a/db/metadump.c b/db/metadump.c
index 2286b71..a30f90e 100644
--- a/db/metadump.c
+++ b/db/metadump.c
@@ -1083,8 +1083,8 @@ obfuscate_sf_attr(
xfs_dinode_t *dip)
{
/*
- * with extended attributes, obfuscate the names and zero the actual
- * values.
+ * with extended attributes, obfuscate the names and fill the actual
+ * values with 'v' (to see a valid string length, as opposed to NULLs)
*/
xfs_attr_shortform_t *asfp;
@@ -1124,7 +1124,7 @@ obfuscate_sf_attr(
}
generate_obfuscated_name(0, asfep->namelen, &asfep->nameval[0]);
- memset(&asfep->nameval[asfep->namelen], 0, asfep->valuelen);
+ memset(&asfep->nameval[asfep->namelen], 'v', asfep->valuelen);
asfep = (xfs_attr_sf_entry_t *)((char *)asfep +
XFS_ATTR_SF_ENTSIZE(asfep));
@@ -1302,7 +1302,7 @@ obfuscate_attr_block(
/* magic to handle attr and attr3 */
memset(block +
(bs - XFS_ATTR3_RMT_BUF_SPACE(mp, bs)),
- 0, XFS_ATTR3_RMT_BUF_SPACE(mp, bs));
+ 'v', XFS_ATTR3_RMT_BUF_SPACE(mp, bs));
}
return;
}
@@ -1339,7 +1339,7 @@ obfuscate_attr_block(
}
generate_obfuscated_name(0, local->namelen,
&local->nameval[0]);
- memset(&local->nameval[local->namelen], 0,
+ memset(&local->nameval[local->namelen], 'v',
be16_to_cpu(local->valuelen));
} else {
remote = xfs_attr3_leaf_name_remote(leaf, i);
More information about the xfs
mailing list