mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-10 01:33:07 +00:00
Merge pull request #1136 from topos-protocol/div_by_zero
Fix risk of division by zero
This commit is contained in:
commit
cf278eac73
@ -4,6 +4,7 @@ use std::str::FromStr;
|
||||
use anyhow::{bail, Error};
|
||||
use ethereum_types::{BigEndianHash, H256, U256, U512};
|
||||
use itertools::Itertools;
|
||||
use num_bigint::BigUint;
|
||||
use plonky2::field::types::Field;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
@ -203,7 +204,11 @@ impl<F: Field> GenerationState<F> {
|
||||
let m_biguint = mem_vec_to_biguint(m);
|
||||
|
||||
let prod = a_biguint * b_biguint;
|
||||
let quo = &prod / &m_biguint;
|
||||
let quo = if m_biguint == BigUint::default() {
|
||||
BigUint::default()
|
||||
} else {
|
||||
&prod / &m_biguint
|
||||
};
|
||||
let rem = prod - m_biguint * &quo;
|
||||
|
||||
(biguint_to_mem_vec(rem), biguint_to_mem_vec(quo))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user