diff --git a/common/bolt11.c b/common/bolt11.c index c23a74641f2f..f208623662e6 100644 --- a/common/bolt11.c +++ b/common/bolt11.c @@ -76,7 +76,11 @@ static const char *pull_uint(struct hash_u5 *hu5, err = pull_bits(hu5, data, data_len, &be_val, databits, true); if (err) return err; - *val = be64_to_cpu(be_val) >> (sizeof(be_val) * CHAR_BIT - databits); + if (databits == 0) + *val = 0; + else + *val = be64_to_cpu(be_val) >> + (sizeof(be_val) * CHAR_BIT - databits); return NULL; } diff --git a/tests/fuzz/corpora/fuzz-bolt11/e6f7b9744a7d79b2aa4f7c477707bdd3483f40fa b/tests/fuzz/corpora/fuzz-bolt11/crash-e6f7b9744a7d79b2aa4f7c477707bdd3483f40fa similarity index 100% rename from tests/fuzz/corpora/fuzz-bolt11/e6f7b9744a7d79b2aa4f7c477707bdd3483f40fa rename to tests/fuzz/corpora/fuzz-bolt11/crash-e6f7b9744a7d79b2aa4f7c477707bdd3483f40fa