fix an endianness bug in ext4_encrypted_zeroout()
PATCH 1/1 fix an endianness bug in ext4_encrypted_zeroout()
ex->ee_block is not host-endian (note that accesses of other fields of *ex right next to that line go through the helpers that do proper conversion from little-endian to host-endian; it might make sense to add similar for ->ee_block to avoid reintroducing that kind of bugs...)
Cc [email protected] # v4.1+
Signed-off-by Al Viro <[email protected]>
---
fs/ext4/crypto.c +1 -1
@@ -389,7 +389,7 @@ int ext4_encrypted_zeroout(struct inode *inode, struct ext4_extent *ex)struct ext4_crypto_ctx *ctx;struct page *ciphertext_page =NULL ;struct bio *bio; -ext4_lblk_t lblk = ex->ee_block; +ext4_lblk_t lblk =le32_to_cpu (ex->ee_block);ext4_fsblk_t pblk =ext4_ext_pblock (ex);unsigned int len =ext4_ext_get_actual_len (ex);int ret, err =0 ;
Theodore Ts'o
maintainerQuoted 8 lines · Al Viro
ex->ee_blockis not host-endian (note that accesses of other fields of *ex right next to that line go through the helpers that do proper conversion from little-endian to host-endian; it might make sense to add similar for ->ee_block to avoid reintroducing that kind of bugs...)Cc [email protected] # v4.1+Signed-off-by Al Viro <[email protected]>
Thanks for catching this! Applied.
- Ted