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

SEC-32 VM memory Set function panic when memory is empty (0) #515

Closed
Gustav-Simonsson opened this issue Mar 17, 2015 · 1 comment
Closed
Milestone

Comments

@Gustav-Simonsson
Copy link

https://github.com/ethereum/go-ethereum/blob/develop/vm/memory.go#L16

If len(m.store) is 0 then the unit64 will overflow and lenSize will be 2^64 -1.

Fix: Change comparison to uint64(len(m.store))

@obscuren
Copy link
Contributor

Memory is always scaled prior to setting the memory.

@obscuren obscuren added this to the Frontier milestone Mar 27, 2015
@obscuren obscuren added the fixed label Mar 27, 2015
Gustav-Simonsson pushed a commit that referenced this issue Mar 29, 2015
* origin/develop: (1100 commits)
  Cleanup.
  Add ExtraData field to RPC output
  Docker rename ethereum to geth
  Remove old go cover location
  Added Coveralls badges
  Prefer hex prefixed with 0x
  Report InvalidTypeError as -32602 to JSON RPC
  Cleanup
  eth_getStorageAt output hex should begin with 0x
  Cleanup VM.
  Cleanup VM
  ethereum -> geth
  eth_getTransactionCount now returns a hex string
  PUSH gas fix
  Decouple core from rpc
  Removed comments
  Removed defer/panic. #503
  BlockFilterArgs
  Update README.md
  Explicitly check memory's data store. #515
  ...
@obscuren obscuren closed this as completed Apr 1, 2015
nolash pushed a commit to nolash/go-ethereum that referenced this issue May 11, 2018
…rics

swarm/storage: ldbstore garbage collection counters
tony-ricciardi pushed a commit to tony-ricciardi/go-ethereum that referenced this issue Jan 20, 2022
* added proxy server

* added isproxy field to peer objects

* relay messages proxy receives to validator

* Add addSentry RPC

* Add removeSentry RPC

* Add admin.sentryInfo RPC

* Add --proxied flag

* Don't consider sentry nodes as contributing toward the max peer count

* Don't assume a sentry will never be a validator

* Remove proxied check from api

* Go back to assuming sentry will not be a validator

* Fix eth tests

* Fix eth test lint

* Add max sentry node count as 1

* wip, add val_enode_share

* Remove redundant proxied check

* Add warning if proxied but not mining

* Wip, messages now are received by sentry

* Clean up, add signatures to val enode share msg

* Add sharedValidatorEnode struct

* Use received shared validator enodes, add proxied check for sharing

* Clean up, remove proxied as a variable in istanbul backend

* run go fmt

* Fix tests

* Add val enode share test

* Change GlobalIsSet -> GlobalBool

* Change to val enode share to every minute, fix comment

* Read lock when reading val enode table entries

* got blockchain syncing done via the sentry

* Refactor val enode share to use istanbul message struct

* changes for relayer consensus message handling

* Refactor announce to use istanbul message struct

* peer.Send done in a goroutine

* Add better logging

* Proxied validators do not peer with validators, sentries do

* Don't refresh val set peers if proxy, lock once when upserting upon handling table message

* Fix lint, tests

* fixed lint errors

* made the sentry and proxied command line argument more consistent

* got announce and val_enode_share msgs working

* forwarding of consensus messages now working

* fix the old block seal

* fixed comment

* added test case for 'old block' preprepare

* simplified the logic

* refactored sentry related command line args and moved addsentry and removesentry rpc api to istanbul package

* refactoring the p2p server to remove sentry and validator connections

* moved all validator and sentry peer management from p2p to istanbul

* fixed bugs

* removed the refactoring of core.finalizeMessage, backend.Broadcast, backend.Gossip.  Leave it for later

* changed proxy listen port flag to listen endpoint

* changes in the test files for the new addpeer and addtrusted p2p.server apis

* changed order of params in Gossip to be same as original ordering

* fixed p2p peer test for the new p2p server interface

* lint fixes

* changes to get istanbul related unit tests to pass

* some changes for the unit tests

* removed some debug logging and added some comment

* added some comments to clarify the need for istanbul.backend.NewWork and istanbul.backend.NewChainHead

* set maxpeers to 1 for the internal server interface

* created istanbul forward message

* removed unneeded whitespace

* handled case of no sentry node set in unregisteredpeer

* got sigint to work

* added support for setting sentry nodes via command line

* fixed a bug

* addressed PR comments

* fixed a big and addressed more PR comments

* will now send an announce message at start of new epoch

* refactor istanbul message (ethereum#583)

* refactored istanbul message

* addressed PR comments

* addressed PR comments

* addressed more PR comments

* addressed more PR comments

* change p2p static and trusted peer labels to purposes

* got proxy end to end test working

* changed the purpose from string type to bitmap based type

* removed redundant adding of active validators to the regAndActiveVal set

* fixed a bug

* re-point celo-monorepo to master

* fixed miner unit test to not create the validatorenode db directory in the miner directory

* addressed PR comments from mcortesi

* handled old announce messages

* fixed a bug

* addressed PR comments

* modified UnionOfSeals to return an error instead of panic-ing

* checked for dup or irrelevant entries when process an announce message

* fixed bugs

* don't regossip announce message if it has dups or irrelevent entries
tanishqjasoria pushed a commit to tanishqjasoria/go-ethereum that referenced this issue Oct 31, 2023
* feat(rollup): sync finalized batches from L1

* tweak

* address comments

* address comments

* tweak

* address comments

* Update rollup/eventwatcher/eventwatcher.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* address comments

* address comments

* address comments

* add s.rollupSyncService.Stop()

* add block chunk batch tests

* fix goimports-lint

* address comments

* address comments

* remove

* add TestUnpackLog test

* add decodeChunkRanges tests

* add commit batch version check

* fix goimport & golint

* tweak

* fixes

* add TestRollupSyncServiceStartAndStop

* add TestGetChunkRanges

* address comments

* add TestValidateBatch

* add TestCalculateFinalizedBatchMeta

* address comments

* address comments

* fix

* address comments

* address comments

* fix

* tweak log

* fix

* tweak logs

* increase wait time

* add --rollup.verify flag

* add flag check in s.rollupSyncService.Stop()

* bump version

* refactor

* tweak configs

* tweak

* refactor getLocalInfoForBatch

* use syscall.Kill(os.Getpid(), syscall.SIGTERM) to shutdown

* refactor decodeChunkBlockRanges

* nit

* address comments

* address comments

* add WithdrawRoot and StateRoot in FinalizedBatchMeta

* address comments

* address comments

* add ctx.Err() check in retry

* add configs in gen_config.go

* bump version

* fix goimport & golint

* try to fix goimport

* revert change

* fix goimport & golint

* tweak

* bump version

* add l2 block -> batch index mapping

* bump version

* add mainnet config

* bump version

* address comments

* rename some vars

* feat: add more detailed logs in crash case (ethereum#547)

add more detailed logs in crash case

* trigger ci

* re-add batch finalization progress log

* remove block number -> batch index mapping

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
s1na pushed a commit to s1na/go-ethereum that referenced this issue Dec 2, 2024
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

No branches or pull requests

2 participants