Checksum for types BCH_CSUM_chacha20_poly1305_80 and
BCH_CSUM_chacha20_poly1305_128 are only computed when c is not NULL
because they require the chacha20 cypher stored in c

Reported-by: [email protected]
Signed-off-by: Camila Alvarez <[email protected]>
---
 fs/bcachefs/checksum.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/bcachefs/checksum.c b/fs/bcachefs/checksum.c
index 3bd3aba90d8f..77b29c73d7a0 100644
--- a/fs/bcachefs/checksum.c
+++ b/fs/bcachefs/checksum.c
@@ -220,10 +220,11 @@ struct bch_csum bch2_checksum(struct bch_fs *c, unsigned 
type,
 
        case BCH_CSUM_chacha20_poly1305_80:
        case BCH_CSUM_chacha20_poly1305_128: {
+               struct bch_csum ret = { 0 };
+               if (!c)
+                       return ret;
                SHASH_DESC_ON_STACK(desc, c->poly1305);
                u8 digest[POLY1305_DIGEST_SIZE];
-               struct bch_csum ret = { 0 };
-
                gen_poly_key(c, desc, nonce);
 
                crypto_shash_update(desc, data, len);
-- 
2.34.1


Reply via email to