On Thu, Apr 23, 2015 at 09:31:21AM +0800, Qu Wenruo wrote:
> Current btrfs only support CRC32 checksum, and if csum_type is 1, we
> will get 0 csum size, causing 0 division later destroy the whole kernel.
> Or csum_type is later than 1, we will get data from other random memory
> causing more problem.

The check for csum type is already there in btrfs_check_super_csum, but
it's wrong and should be fixed.

btrfs_csum_sizes = { 4, 0 };

 429         if (csum_type >= ARRAY_SIZE(btrfs_csum_sizes)) {
 430                 printk(KERN_ERR "BTRFS: unsupported checksum algorithm 
%u\n",
 431                                 csum_type);
 432                 ret = 1;
 433         }
 434

and the check fails to catch csum_type == 1.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to