On Mon, Jul 27, 2020 at 10:41:58AM -0700, Eric Biggers wrote: > From: Eric Biggers <ebiggers@xxxxxxxxxx> > > In fscrypt_set_bio_crypt_ctx(), ->i_crypt_info isn't known to be > non-NULL until we check fscrypt_inode_uses_inline_crypto(). So, load > ->i_crypt_info after the check rather than before. This makes no > difference currently, but it prevents people from introducing bugs where > the pointer is dereferenced when it may be NULL. > > Suggested-by: Dave Chinner <david@xxxxxxxxxxxxx> > Cc: Satya Tangirala <satyat@xxxxxxxxxx> > Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx> > --- > fs/crypto/inline_crypt.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/crypto/inline_crypt.c b/fs/crypto/inline_crypt.c > index dfb06375099ae..b6b8574caa13c 100644 > --- a/fs/crypto/inline_crypt.c > +++ b/fs/crypto/inline_crypt.c > @@ -244,11 +244,12 @@ static void fscrypt_generate_dun(const struct fscrypt_info *ci, u64 lblk_num, > void fscrypt_set_bio_crypt_ctx(struct bio *bio, const struct inode *inode, > u64 first_lblk, gfp_t gfp_mask) > { > - const struct fscrypt_info *ci = inode->i_crypt_info; > + const struct fscrypt_info *ci; > u64 dun[BLK_CRYPTO_DUN_ARRAY_SIZE]; > > if (!fscrypt_inode_uses_inline_crypto(inode)) > return; > + ci = inode->i_crypt_info; > > fscrypt_generate_dun(ci, first_lblk, dun); > bio_crypt_set_ctx(bio, &ci->ci_enc_key.blk_key->base, dun, gfp_mask); Applied to fscrypt.git#master for 5.9. - Eric