Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: field zero division in brillig #7386

Merged

Conversation

jewelofchaos9
Copy link
Contributor

Description

Problem*

Brillig VM allowed division by zero for field operations

Summary*

Added validation to prevent division by zero in field operations, with a regression test to verify the fix.

Additional Context

Documentation*

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

Copy link
Contributor

Thank you for your contribution to the Noir language.

Please do not force push to this branch after the Noir team have started review of this PR. Doing so will only delay us merging your PR as we will need to start the review process from scratch.

Thanks for your understanding.

@Rumata888 Rumata888 requested a review from aakoshh February 14, 2025 15:25
Copy link
Contributor

@aakoshh aakoshh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! 👏

@aakoshh aakoshh enabled auto-merge February 14, 2025 16:04
@aakoshh aakoshh added this pull request to the merge queue Feb 14, 2025
Merged via the queue into noir-lang:master with commit e73f8cd Feb 14, 2025
100 of 101 checks passed
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 14, 2025
…oir-lang/noir#7393)

chore: document traits required to be in scope (noir-lang/noir#7387)
fix: field zero division in brillig (noir-lang/noir#7386)
chore: box `ParserError`s in `InterpreterError` (noir-lang/noir#7373)
chore: remove unnecessary dereferencing within brillig vm (noir-lang/noir#7375)
fix: give "correct" error when trying to use AsTraitPath (noir-lang/noir#7360)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 14, 2025
…oir#7393)

chore: document traits required to be in scope (noir-lang/noir#7387)
fix: field zero division in brillig (noir-lang/noir#7386)
chore: box `ParserError`s in `InterpreterError` (noir-lang/noir#7373)
chore: remove unnecessary dereferencing within brillig vm (noir-lang/noir#7375)
fix: give "correct" error when trying to use AsTraitPath (noir-lang/noir#7360)
TomAFrench added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 14, 2025
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
fix(ssa): Do not deduplicate division by a zero constant
(noir-lang/noir#7393)
chore: document traits required to be in scope
(noir-lang/noir#7387)
fix: field zero division in brillig
(noir-lang/noir#7386)
chore: box `ParserError`s in `InterpreterError`
(noir-lang/noir#7373)
chore: remove unnecessary dereferencing within brillig vm
(noir-lang/noir#7375)
fix: give "correct" error when trying to use AsTraitPath
(noir-lang/noir#7360)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
TomAFrench added a commit that referenced this pull request Feb 14, 2025
…rom-brillig

* master:
  chore: allow opting in to displaying benchmark comments (#7399)
  chore: box `ExprValue` in `Value` enum (#7388)
  chore: pull out refactored methods from u128 branch (#7385)
  feat: require safety comments instead of safety doc comments (#7295)
  fix(ssa): Do not deduplicate division by a zero constant (#7393)
  chore: document traits required to be in scope (#7387)
  fix: field zero division in brillig (#7386)
  chore: box `ParserError`s in `InterpreterError` (#7373)
  chore: remove unnecessary dereferencing within brillig vm (#7375)
  fix: give "correct" error when trying to use AsTraitPath (#7360)
  chore: avoid u128s in brillig memory (#7363)
  chore: update docs about integer overflows (#7370)
  fix!: Only decrement the counter of an array if its address has not changed (#7297)
  fix: let LSP read `noirfmt.toml` for formatting files (#7355)
  chore: deprecate keccak256 (#7361)
  feat: `FunctionDefinition::as_typed_expr` (#7358)
  feat(performance): Check sub operations against induction variables (#7356)
  chore: avoid doing all brillig integer arithmetic on u128s (#7357)
TomAFrench added a commit that referenced this pull request Feb 14, 2025
* master:
  chore: allow opting in to displaying benchmark comments (#7399)
  chore: box `ExprValue` in `Value` enum (#7388)
  chore: pull out refactored methods from u128 branch (#7385)
  feat: require safety comments instead of safety doc comments (#7295)
  fix(ssa): Do not deduplicate division by a zero constant (#7393)
  chore: document traits required to be in scope (#7387)
  fix: field zero division in brillig (#7386)
  chore: box `ParserError`s in `InterpreterError` (#7373)
  chore: remove unnecessary dereferencing within brillig vm (#7375)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants