Fix calcwit.cpp InputHashMap wrap-around #239
Open
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.
The witness calculated generated with
circom --cpp
may not work depending on the input signal names.In the calcwit.cpp, if the signal name hash
h
happens to satisfypos = (h % 256) = get_size_of_input_hashmap() - 1
and there is a hashmap collision, then the loop fails to find the InputHashMap entry.In our case (found by @2dvorak) the two signals were hashed to the
pos = 255
. "expLen" (h = 13708731413403068927) and "audValOffset" (h = 16744535348853068031).This PR fixes the edge case.