argotorg / argotorg/solidity

[SMTChecker] Stack overflow due to nested SMT expressions in Gnosis safe contract

Open
#11,329 5 comments 0 reactions 0 assignees View on GitHub
performance :racehorse: smt
Dominant language
C++
Stars
25.7k
Forks
6.2k
Avg merge
2d 19h
Merged PRs (30d)
29

Description

Moved from https://github.com/ethereum/solidity/pull/10961

This test https://gist.github.com/bshastry/395f7484727b9f42060d54d26dc9caec

when copied to `test/libsolidity/syntaxTests/multiSource/gnosisSafe.sol`

and invoked like so

```
$ isoltest -t syntaxTests/multiSouce/gnosisSafe
```

leads to a SIGKILL because of running out of stack memory. The associated stack trace may be found here: https://gist.github.com/bshastry/c0752f16c3952e8a1fcbe0813c033318#file-smt_segfault_gnosissafe_stacktrace-txt-L759

Also see https://github.com/ethereum/solidity/pull/10961#issuecomment-779112262

Contributor guide

Open the contributing guide

Research direction

Start with test/libsolidity/syntaxTests/multiSource/gnosisSafe.sol and reproduce the failure using isoltest, correcting the reported path typo if needed. Read the linked stack trace and related pull request discussion to locate the nested SMT expression path. Done means the Gnosis Safe test no longer exhausts stack memory or receives SIGKILL.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, solidity
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.