metadump: 2 more patches
cover metadump: 2 more patches
metadump: Fill attribute values with 'v' rather than NUL
metadump: handle multi-block directories
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
PATCH 1/2 metadump: Fill attribute values with 'v' rather than NUL
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=
---
db/metadump.c +5 -5
@@ -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);
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Re: [PATCH 1/2] metadump: Fill attribute values with 'v' rather than NUL
Looks good,
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
PATCH 2/2 metadump: handle multi-block directories
In reply to Eric Sandeencommit 6e79202b metadump: fully support discontiguous directory blocks
assembled a buffer from multiple dir blocks, and we can use that in obfuscate_dir_data_block() to continue past the first filesystem block and continue obfuscating the entire thing.
Without this, anything after the first block was skipped, and remained as cleartext.
---
db/metadump.c +1 -4
@@ -1152,9 +1152,6 @@ obfuscate_dir_data_block( datahdr = (struct xfs_dir2_data_hdr *)block; -if (offset % mp->m_dir_geo->fsbcount !=0 ) -return ;/* corrupted, leave it alone */ -if (is_block_format) {xfs_dir2_leaf_entry_t *blp;xfs_dir2_block_tail_t *btp;
@@ -1187,7 +1184,7 @@ obfuscate_dir_data_block( dir_offset =M_DIROPS (mp)->data_entry_offset; ptr = block + dir_offset; - endptr = block + mp->m_sb.sb_blocksize; + endptr = block + mp->m_dir_geo->blksize;while (ptr < endptr && dir_offset < end_of_data) {xfs_dir2_data_entry_t *dep;
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs