Validate and bound dev batch parsing in Core::set_job#4
Merged
MoneroOcean merged 1 commit intoMay 27, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
devbatch suffixes from being converted into unsigned values that underflow array indexes or cause unbounded memory/thread allocation.devvalues such ascpu*0,cpu*-1, or very large numbers.Description
atoi()-based parsing of thedevbatch suffix with validatedstrtoul()parsing that rejects empty, non-numeric, zero, and overflowed values inmoner-job.cpp.0before indexingcpu_params2variant[new_batch - 1]to avoid underflow.MAX_RX_CPU_WAYS = 32cap and a check to bound RX batch sizes and avoid unbounded thread/memory allocation.new_batch * new_mem_sizebefore performing the allocation to prevent integer-overflow driven huge allocations.Testing
npm test --silent; it failed in this environment because the native addon build cannot be completed (Unable to build node-randomx native addon), so full integration tests could not run.Core::set_jobparsing/validation logic and compiles in this workspace as a single-file change (commit recorded).Codex Task