]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
metadump: Fill attribute values with 'v' rather than NUL
authorEric Sandeen <sandeen@sandeen.net>
Wed, 29 Jul 2015 23:17:43 +0000 (09:17 +1000)
committerDave Chinner <david@fromorbit.com>
Wed, 29 Jul 2015 23:17:43 +0000 (09:17 +1000)
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@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
db/metadump.c

index ffd1fe1f7288aa7f0c4d044fee8f5c445e828c3b..bea5de7c332d5fd75ecef47b8bb5c8e0453c83b0 100644 (file)
@@ -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));
@@ -1299,7 +1299,7 @@ obfuscate_attr_block(
                                /* Macros to handle both 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;
        }
@@ -1337,7 +1337,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);