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

Error handling when memory offset is overflowing #7385

Closed
Tracked by #6383
jeanmon opened this issue Jul 8, 2024 · 0 comments · Fixed by #10879 or #10918
Closed
Tracked by #6383

Error handling when memory offset is overflowing #7385

jeanmon opened this issue Jul 8, 2024 · 0 comments · Fixed by #10879 or #10918
Assignees
Labels
C-avm Component: AVM related tickets (aka public VM)

Comments

@jeanmon
Copy link
Contributor

jeanmon commented Jul 8, 2024

We are not handling a CALLDATACOPY opcode call which would lead to some overflowing memory offset. We should agree on how to handle this and align with simulator. Possibilities:

  1. We return no error but perform wrapping arithmetic over U32.
  2. We raise an halting error and stop execution.
@github-project-automation github-project-automation bot moved this to Todo in A3 Jul 8, 2024
@jeanmon jeanmon added the C-avm Component: AVM related tickets (aka public VM) label Jul 8, 2024
@jeanmon jeanmon self-assigned this Jul 8, 2024
@jeanmon jeanmon moved this from Todo to In Progress in A3 Dec 19, 2024
@github-project-automation github-project-automation bot moved this from In Progress to Done in A3 Dec 23, 2024
PhilWindle pushed a commit that referenced this issue Dec 23, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.68.1</summary>

##
[0.68.1](aztec-package-v0.68.0...aztec-package-v0.68.1)
(2024-12-23)


### Miscellaneous

* Configurable parallelism in bootstrap
([#10909](#10909))
([5260f1e](5260f1e))
</details>

<details><summary>barretenberg.js: 0.68.1</summary>

##
[0.68.1](barretenberg.js-v0.68.0...barretenberg.js-v0.68.1)
(2024-12-23)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-packages: 0.68.1</summary>

##
[0.68.1](aztec-packages-v0.68.0...aztec-packages-v0.68.1)
(2024-12-23)


### Features

* Add a warning when using unsafe blocks without safety comments
(noir-lang/noir#6860)
([84a4005](84a4005))
* Add limit to unique contract call
([#10640](#10640))
([d340f0b](d340f0b))
* Configurable external check failures
(noir-lang/noir#6810)
([84a4005](84a4005))
* **docs:** Add aztec-wallet proving
([#10847](#10847))
([3efae86](3efae86))
* Flatten nested if-else statements with equivalent conditions
(noir-lang/noir#6875)
([84a4005](84a4005))
* **p2p:** Timeout peers, disconnect from badly scored peers
([#10907](#10907))
([76a23eb](76a23eb))
* Replace `eval_global_as_array_length` with type/interpreter evaluation
(noir-lang/noir#6469)
([84a4005](84a4005))
* Revamped sequencer timetable and tx processing timeout
([#10870](#10870))
([145122b](145122b))
* Sync from aztec-packages (noir-lang/noir#6824)
([84a4005](84a4005))
* Warn on unnecessary unsafe blocks
(noir-lang/noir#6867)
([84a4005](84a4005))


### Bug Fixes

* Add devcoin to faucet after deployment
([#10903](#10903))
([6aa5369](6aa5369))
* CI kind test fix
([#10932](#10932))
([bda1ac7](bda1ac7))
* **ci:** Tester/builder start race conditions
([#10893](#10893))
([4250782](4250782))
* Conditionally deploy deterministic deployment proxy
([#10936](#10936))
([48624b7](48624b7))
* Degrade libp2p crypto package
([#10876](#10876))
([9293f38](9293f38))
* Detect cycles in globals (noir-lang/noir#6859)
([84a4005](84a4005))
* Don't deduplicate binary math of unsigned types
(noir-lang/noir#6848)
([84a4005](84a4005))
* Double alias in path (noir-lang/noir#6855)
([84a4005](84a4005))
* Implement `as_field` and `from_field` in the interpreter
(noir-lang/noir#6829)
([84a4005](84a4005))
* Install Yarn 4.5.2 to build WASM
([#10940](#10940))
([2a76380](2a76380))
* Removed Sepolia stuff from devnet deploy action
([#10916](#10916))
([fbf120b](fbf120b))


### Miscellaneous

* **avm:** Check that slice read/write are not out of memory range
([#10879](#10879))
([ab3f318](ab3f318)),
closes
[#7385](#7385)
* Avoid duplicate Not instructions during flattening
(noir-lang/noir#6886)
([84a4005](84a4005))
* **ci:** Add non determinism check and fixes
(noir-lang/noir#6847)
([84a4005](84a4005))
* **ci:** Display times in compilation and execution reports only with
seconds (noir-lang/noir#6880)
([84a4005](84a4005))
* **ci:** Execution time report
(noir-lang/noir#6827)
([84a4005](84a4005))
* **ci:** Take averages for compilation and execution report of small
programs (noir-lang/noir#6874)
([84a4005](84a4005))
* Clean up gates reports script
(noir-lang/noir#6896)
([84a4005](84a4005))
* Configurable parallelism in bootstrap
([#10909](#10909))
([5260f1e](5260f1e))
* **docs:** Updating noirjs tutorial for 1.0.0
(noir-lang/noir#6792)
([84a4005](84a4005))
* **docs:** Updating the solidity contract how-to guide
(noir-lang/noir#6804)
([84a4005](84a4005))
* Fix warnings (noir-lang/noir#6863)
([84a4005](84a4005))
* Have rust-analyzer use the stable toolchain
(noir-lang/noir#6825)
([84a4005](84a4005))
* Move constant creation out of loop
(noir-lang/noir#6836)
([84a4005](84a4005))
* Move empty programs to `compile_success_empty`
(noir-lang/noir#6891)
([84a4005](84a4005))
* New default resource values for GKE
([#10928](#10928))
([18e38d3](18e38d3))
* Quick docs fix for
[#6839](#6839)
(noir-lang/noir#6840)
([84a4005](84a4005))
* Refactor `DataFlowGraph.insert_instruction_and_results`
(noir-lang/noir#6823)
([84a4005](84a4005))
* Remove get registered account from pxe
([#10479](#10479))
([ee568ff](ee568ff))
* Remove malformed functions from brillig reports
(noir-lang/noir#6898)
([84a4005](84a4005))
* Remove the `as_field` and `from_field` built-ins
(noir-lang/noir#6845)
([84a4005](84a4005))
* Reorganise translator proving key construction
([#10853](#10853))
([5da4d1b](5da4d1b))
* Replace relative paths to noir-protocol-circuits
([b9f9875](b9f9875))
* Update gates diff action
([#10917](#10917))
([57439a7](57439a7))
* Use smallvec for instruction results
(noir-lang/noir#6877)
([84a4005](84a4005))
* Use Vec for callstacks (noir-lang/noir#6821)
([84a4005](84a4005))
</details>

<details><summary>barretenberg: 0.68.1</summary>

##
[0.68.1](barretenberg-v0.68.0...barretenberg-v0.68.1)
(2024-12-23)


### Features

* Add limit to unique contract call
([#10640](#10640))
([d340f0b](d340f0b))


### Miscellaneous

* **avm:** Check that slice read/write are not out of memory range
([#10879](#10879))
([ab3f318](ab3f318)),
closes
[#7385](#7385)
* Reorganise translator proving key construction
([#10853](#10853))
([5da4d1b](5da4d1b))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this issue Dec 24, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.68.1</summary>

##
[0.68.1](AztecProtocol/aztec-packages@aztec-package-v0.68.0...aztec-package-v0.68.1)
(2024-12-23)


### Miscellaneous

* Configurable parallelism in bootstrap
([#10909](AztecProtocol/aztec-packages#10909))
([5260f1e](AztecProtocol/aztec-packages@5260f1e))
</details>

<details><summary>barretenberg.js: 0.68.1</summary>

##
[0.68.1](AztecProtocol/aztec-packages@barretenberg.js-v0.68.0...barretenberg.js-v0.68.1)
(2024-12-23)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-packages: 0.68.1</summary>

##
[0.68.1](AztecProtocol/aztec-packages@aztec-packages-v0.68.0...aztec-packages-v0.68.1)
(2024-12-23)


### Features

* Add a warning when using unsafe blocks without safety comments
(noir-lang/noir#6860)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Add limit to unique contract call
([#10640](AztecProtocol/aztec-packages#10640))
([d340f0b](AztecProtocol/aztec-packages@d340f0b))
* Configurable external check failures
(noir-lang/noir#6810)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* **docs:** Add aztec-wallet proving
([#10847](AztecProtocol/aztec-packages#10847))
([3efae86](AztecProtocol/aztec-packages@3efae86))
* Flatten nested if-else statements with equivalent conditions
(noir-lang/noir#6875)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* **p2p:** Timeout peers, disconnect from badly scored peers
([#10907](AztecProtocol/aztec-packages#10907))
([76a23eb](AztecProtocol/aztec-packages@76a23eb))
* Replace `eval_global_as_array_length` with type/interpreter evaluation
(noir-lang/noir#6469)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Revamped sequencer timetable and tx processing timeout
([#10870](AztecProtocol/aztec-packages#10870))
([145122b](AztecProtocol/aztec-packages@145122b))
* Sync from aztec-packages (noir-lang/noir#6824)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Warn on unnecessary unsafe blocks
(noir-lang/noir#6867)
([84a4005](AztecProtocol/aztec-packages@84a4005))


### Bug Fixes

* Add devcoin to faucet after deployment
([#10903](AztecProtocol/aztec-packages#10903))
([6aa5369](AztecProtocol/aztec-packages@6aa5369))
* CI kind test fix
([#10932](AztecProtocol/aztec-packages#10932))
([bda1ac7](AztecProtocol/aztec-packages@bda1ac7))
* **ci:** Tester/builder start race conditions
([#10893](AztecProtocol/aztec-packages#10893))
([4250782](AztecProtocol/aztec-packages@4250782))
* Conditionally deploy deterministic deployment proxy
([#10936](AztecProtocol/aztec-packages#10936))
([48624b7](AztecProtocol/aztec-packages@48624b7))
* Degrade libp2p crypto package
([#10876](AztecProtocol/aztec-packages#10876))
([9293f38](AztecProtocol/aztec-packages@9293f38))
* Detect cycles in globals (noir-lang/noir#6859)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Don't deduplicate binary math of unsigned types
(noir-lang/noir#6848)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Double alias in path (noir-lang/noir#6855)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Implement `as_field` and `from_field` in the interpreter
(noir-lang/noir#6829)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Install Yarn 4.5.2 to build WASM
([#10940](AztecProtocol/aztec-packages#10940))
([2a76380](AztecProtocol/aztec-packages@2a76380))
* Removed Sepolia stuff from devnet deploy action
([#10916](AztecProtocol/aztec-packages#10916))
([fbf120b](AztecProtocol/aztec-packages@fbf120b))


### Miscellaneous

* **avm:** Check that slice read/write are not out of memory range
([#10879](AztecProtocol/aztec-packages#10879))
([ab3f318](AztecProtocol/aztec-packages@ab3f318)),
closes
[#7385](AztecProtocol/aztec-packages#7385)
* Avoid duplicate Not instructions during flattening
(noir-lang/noir#6886)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* **ci:** Add non determinism check and fixes
(noir-lang/noir#6847)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* **ci:** Display times in compilation and execution reports only with
seconds (noir-lang/noir#6880)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* **ci:** Execution time report
(noir-lang/noir#6827)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* **ci:** Take averages for compilation and execution report of small
programs (noir-lang/noir#6874)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Clean up gates reports script
(noir-lang/noir#6896)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Configurable parallelism in bootstrap
([#10909](AztecProtocol/aztec-packages#10909))
([5260f1e](AztecProtocol/aztec-packages@5260f1e))
* **docs:** Updating noirjs tutorial for 1.0.0
(noir-lang/noir#6792)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* **docs:** Updating the solidity contract how-to guide
(noir-lang/noir#6804)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Fix warnings (noir-lang/noir#6863)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Have rust-analyzer use the stable toolchain
(noir-lang/noir#6825)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Move constant creation out of loop
(noir-lang/noir#6836)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Move empty programs to `compile_success_empty`
(noir-lang/noir#6891)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* New default resource values for GKE
([#10928](AztecProtocol/aztec-packages#10928))
([18e38d3](AztecProtocol/aztec-packages@18e38d3))
* Quick docs fix for
[#6839](AztecProtocol/aztec-packages#6839)
(noir-lang/noir#6840)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Refactor `DataFlowGraph.insert_instruction_and_results`
(noir-lang/noir#6823)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Remove get registered account from pxe
([#10479](AztecProtocol/aztec-packages#10479))
([ee568ff](AztecProtocol/aztec-packages@ee568ff))
* Remove malformed functions from brillig reports
(noir-lang/noir#6898)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Remove the `as_field` and `from_field` built-ins
(noir-lang/noir#6845)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Reorganise translator proving key construction
([#10853](AztecProtocol/aztec-packages#10853))
([5da4d1b](AztecProtocol/aztec-packages@5da4d1b))
* Replace relative paths to noir-protocol-circuits
([b9f9875](AztecProtocol/aztec-packages@b9f9875))
* Update gates diff action
([#10917](AztecProtocol/aztec-packages#10917))
([57439a7](AztecProtocol/aztec-packages@57439a7))
* Use smallvec for instruction results
(noir-lang/noir#6877)
([84a4005](AztecProtocol/aztec-packages@84a4005))
* Use Vec for callstacks (noir-lang/noir#6821)
([84a4005](AztecProtocol/aztec-packages@84a4005))
</details>

<details><summary>barretenberg: 0.68.1</summary>

##
[0.68.1](AztecProtocol/aztec-packages@barretenberg-v0.68.0...barretenberg-v0.68.1)
(2024-12-23)


### Features

* Add limit to unique contract call
([#10640](AztecProtocol/aztec-packages#10640))
([d340f0b](AztecProtocol/aztec-packages@d340f0b))


### Miscellaneous

* **avm:** Check that slice read/write are not out of memory range
([#10879](AztecProtocol/aztec-packages#10879))
([ab3f318](AztecProtocol/aztec-packages@ab3f318)),
closes
[#7385](AztecProtocol/aztec-packages#7385)
* Reorganise translator proving key construction
([#10853](AztecProtocol/aztec-packages#10853))
([5da4d1b](AztecProtocol/aztec-packages@5da4d1b))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-avm Component: AVM related tickets (aka public VM)
Projects
Archived in project
1 participant