From: Eric Sandeen Date: Wed, 29 Jul 2015 23:17:43 +0000 (+1000) Subject: metadump: handle multi-block directories X-Git-Tag: v3.2.4~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=aad766a5bc5dfd18888897ea8260db753c7fac9f;p=thirdparty%2Fxfsprogs-dev.git metadump: handle multi-block directories 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. Signed-off-by: Eric Sandeen Signed-off-by: Eric Sandeen Reviewed-by: Brian Foster Signed-off-by: Dave Chinner --- diff --git a/db/metadump.c b/db/metadump.c index 5cc1ece98..dd1d7ab9d 100644 --- a/db/metadump.c +++ b/db/metadump.c @@ -1152,9 +1152,6 @@ obfuscate_dir_data_block( datahdr = (struct xfs_dir2_data_hdr *)block; - if (offset % mp->m_dirblkfsbs != 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 = xfs_dir3_data_entry_offset(datahdr); ptr = block + dir_offset; - endptr = block + mp->m_sb.sb_blocksize; + endptr = block + mp->m_dirblksize; while (ptr < endptr && dir_offset < end_of_data) { xfs_dir2_data_entry_t *dep;