Re: [syzbot] [PATCH] Fix general protection fault in bch2_checksum

syzbot
2024-07-17T20:43:53Z

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.

***

Subject: [PATCH] Fix general protection fault in bch2_checksum
Author: cam.alvarez.i@gmail.com

#syz test
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

Signed-off-by: Camila Alvarez <cam.alvarez.i@gmail.com>
---
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