Skip to content

Commit 90d0ea1

Browse files
authored
Merge pull request #9788 from LinuxJedi/static-fixes
Fix issues found in static analysis
2 parents 03260bf + 8042f76 commit 90d0ea1

File tree

5 files changed

+35
-46
lines changed

5 files changed

+35
-46
lines changed

wolfcrypt/src/chacha20_poly1305.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ static WC_INLINE int wc_XChaCha20Poly1305_crypt_oneshot(
422422

423423
if (aead->poly.leftover) {
424424
if ((ret = wc_Poly1305_Pad(&aead->poly, (word32)aead->poly.leftover)) < 0)
425-
return ret;
425+
goto out;
426426
}
427427

428428
#ifdef WORD64_AVAILABLE

wolfcrypt/src/compress.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,10 @@ int wc_DeCompressDynamic(byte** out, int maxSz, int memoryType,
230230

231231
stream.next_out = tmp;
232232
stream.avail_out = (uInt)tmpSz;
233-
if ((uLong)stream.avail_out != tmpSz) return DECOMPRESS_INIT_E;
233+
if ((uLong)stream.avail_out != tmpSz) {
234+
XFREE(tmp, heap, memoryType);
235+
return DECOMPRESS_INIT_E;
236+
}
234237

235238
stream.zalloc = (alloc_func)myAlloc;
236239
stream.zfree = (free_func)myFree;

wolfcrypt/src/dilithium.c

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9953,20 +9953,18 @@ static int oqs_dilithium_sign_msg(const byte* msg, word32 msgLen, byte* sig,
99539953

99549954
if (ret == 0) {
99559955
ret = wolfSSL_liboqsRngMutexLock(rng);
9956+
if (ret == 0) {
9957+
if (OQS_SIG_sign(oqssig, sig, &localOutLen, msg, msgLen, key->k)
9958+
== OQS_ERROR) {
9959+
ret = BAD_FUNC_ARG;
9960+
}
9961+
}
9962+
if (ret == 0) {
9963+
*sigLen = (word32)localOutLen;
9964+
}
9965+
wolfSSL_liboqsRngMutexUnlock();
99569966
}
99579967

9958-
if ((ret == 0) &&
9959-
(OQS_SIG_sign(oqssig, sig, &localOutLen, msg, msgLen, key->k)
9960-
== OQS_ERROR)) {
9961-
ret = BAD_FUNC_ARG;
9962-
}
9963-
9964-
if (ret == 0) {
9965-
*sigLen = (word32)localOutLen;
9966-
}
9967-
9968-
wolfSSL_liboqsRngMutexUnlock();
9969-
99709968
if (oqssig != NULL) {
99719969
OQS_SIG_free(oqssig);
99729970
}

wolfcrypt/src/falcon.c

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,6 @@ int wc_falcon_sign_msg(const byte* in, word32 inLen,
9898
}
9999
}
100100

101-
if ((ret == 0) && (oqssig == NULL)) {
102-
ret = BUFFER_E;
103-
}
104-
105101
/* check and set up out length */
106102
if (ret == 0) {
107103
if ((key->level == 1) && (*outLen < FALCON_LEVEL1_SIG_SIZE)) {
@@ -117,20 +113,18 @@ int wc_falcon_sign_msg(const byte* in, word32 inLen,
117113

118114
if (ret == 0) {
119115
ret = wolfSSL_liboqsRngMutexLock(rng);
116+
if (ret == 0) {
117+
if (OQS_SIG_sign(oqssig, out, &localOutLen, in, inLen, key->k)
118+
== OQS_ERROR) {
119+
ret = BAD_FUNC_ARG;
120+
}
121+
}
122+
if (ret == 0) {
123+
*outLen = (word32)localOutLen;
124+
}
125+
wolfSSL_liboqsRngMutexUnlock();
120126
}
121127

122-
if ((ret == 0) &&
123-
(OQS_SIG_sign(oqssig, out, &localOutLen, in, inLen, key->k)
124-
== OQS_ERROR)) {
125-
ret = BAD_FUNC_ARG;
126-
}
127-
128-
if (ret == 0) {
129-
*outLen = (word32)localOutLen;
130-
}
131-
132-
wolfSSL_liboqsRngMutexUnlock();
133-
134128
if (oqssig != NULL) {
135129
OQS_SIG_free(oqssig);
136130
}
@@ -196,10 +190,6 @@ int wc_falcon_verify_msg(const byte* sig, word32 sigLen, const byte* msg,
196190
}
197191
}
198192

199-
if ((ret == 0) && (oqssig == NULL)) {
200-
ret = BUFFER_E;
201-
}
202-
203193
if ((ret == 0) &&
204194
(OQS_SIG_verify(oqssig, msg, msgLen, sig, sigLen, key->p)
205195
== OQS_ERROR)) {

wolfcrypt/src/sphincs.c

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -131,20 +131,18 @@ int wc_sphincs_sign_msg(const byte* in, word32 inLen, byte* out, word32 *outLen,
131131

132132
if (ret == 0) {
133133
ret = wolfSSL_liboqsRngMutexLock(rng);
134+
if (ret == 0) {
135+
if (OQS_SIG_sign(oqssig, out, &localOutLen, in, inLen, key->k)
136+
== OQS_ERROR) {
137+
ret = BAD_FUNC_ARG;
138+
}
139+
}
140+
if (ret == 0) {
141+
*outLen = (word32)localOutLen;
142+
}
143+
wolfSSL_liboqsRngMutexUnlock();
134144
}
135145

136-
if ((ret == 0) &&
137-
(OQS_SIG_sign(oqssig, out, &localOutLen, in, inLen, key->k)
138-
== OQS_ERROR)) {
139-
ret = BAD_FUNC_ARG;
140-
}
141-
142-
if (ret == 0) {
143-
*outLen = (word32)localOutLen;
144-
}
145-
146-
wolfSSL_liboqsRngMutexUnlock();
147-
148146
if (oqssig != NULL) {
149147
OQS_SIG_free(oqssig);
150148
}

0 commit comments

Comments
 (0)