Fix for error: array subscript is below array bounds warning with GCC 7. Added check to prevent negative value from being used against array.

This commit is contained in:
David Garske
2017-07-21 12:00:28 -07:00
parent b7dac4911b
commit 26ac5e1ab7

View File

@@ -314,7 +314,7 @@ void fp_mul(fp_int *A, fp_int *B, fp_int *C)
clean: clean:
/* zero any excess digits on the destination that we didn't write to */ /* zero any excess digits on the destination that we didn't write to */
for (y = C->used; y < oldused; y++) { for (y = C->used; y >= 0 && y < oldused; y++) {
C->dp[y] = 0; C->dp[y] = 0;
} }
} }
@@ -1479,7 +1479,7 @@ void fp_sqr(fp_int *A, fp_int *B)
clean: clean:
/* zero any excess digits on the destination that we didn't write to */ /* zero any excess digits on the destination that we didn't write to */
for (y = B->used; y < oldused; y++) { for (y = B->used; y >= 0 && y < oldused; y++) {
B->dp[y] = 0; B->dp[y] = 0;
} }
} }
@@ -2467,7 +2467,7 @@ void fp_copy(fp_int *a, fp_int *b)
XMEMCPY(b->dp, a->dp, a->used * sizeof(fp_digit)); XMEMCPY(b->dp, a->dp, a->used * sizeof(fp_digit));
/* zero any excess digits on the destination that we didn't write to */ /* zero any excess digits on the destination that we didn't write to */
for (x = b->used; x < oldused; x++) { for (x = b->used; x >= 0 && x < oldused; x++) {
b->dp[x] = 0; b->dp[x] = 0;
} }
} }