Use fixed-size array in IsProbablyDuplicate to avoid stack protector warning
This commit is contained in:
parent
d4af3dd5fd
commit
6b4f4475a5
|
@ -303,9 +303,10 @@ bool Equihash<N,K>::BasicSolve(const eh_HashState& base_state,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<size_t MAX_INDICES>
|
||||||
bool IsProbablyDuplicate(std::shared_ptr<eh_trunc> indices, size_t lenIndices)
|
bool IsProbablyDuplicate(std::shared_ptr<eh_trunc> indices, size_t lenIndices)
|
||||||
{
|
{
|
||||||
bool checked_index[lenIndices] = {false};
|
bool checked_index[MAX_INDICES] = {false};
|
||||||
for (int z = 0; z < lenIndices; z++) {
|
for (int z = 0; z < lenIndices; z++) {
|
||||||
if (!checked_index[z]) {
|
if (!checked_index[z]) {
|
||||||
for (int y = z+1; y < lenIndices; y++) {
|
for (int y = z+1; y < lenIndices; y++) {
|
||||||
|
@ -387,7 +388,7 @@ bool Equihash<N,K>::OptimisedSolve(const eh_HashState& base_state,
|
||||||
|
|
||||||
// First run the algorithm with truncated indices
|
// First run the algorithm with truncated indices
|
||||||
|
|
||||||
eh_index soln_size { 1 << K };
|
const eh_index soln_size { 1 << K };
|
||||||
std::vector<std::shared_ptr<eh_trunc>> partialSolns;
|
std::vector<std::shared_ptr<eh_trunc>> partialSolns;
|
||||||
int invalidCount = 0;
|
int invalidCount = 0;
|
||||||
{
|
{
|
||||||
|
@ -432,7 +433,7 @@ bool Equihash<N,K>::OptimisedSolve(const eh_HashState& base_state,
|
||||||
hashLen, lenIndices,
|
hashLen, lenIndices,
|
||||||
CollisionByteLength};
|
CollisionByteLength};
|
||||||
if (!(Xi.IsZero(hashLen-CollisionByteLength) &&
|
if (!(Xi.IsZero(hashLen-CollisionByteLength) &&
|
||||||
IsProbablyDuplicate(Xi.GetTruncatedIndices(hashLen-CollisionByteLength, 2*lenIndices),
|
IsProbablyDuplicate<soln_size>(Xi.GetTruncatedIndices(hashLen-CollisionByteLength, 2*lenIndices),
|
||||||
2*lenIndices))) {
|
2*lenIndices))) {
|
||||||
Xc.emplace_back(Xi);
|
Xc.emplace_back(Xi);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue