Skip to content

Commit d350ba6

Browse files
author
Andras Fekete
committed
remove NULL test with XFREE arguments with dereference
1 parent d6a7187 commit d350ba6

28 files changed

Lines changed: 122 additions & 292 deletions

src/bio.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -834,9 +834,7 @@ int wolfSSL_BIO_write(WOLFSSL_BIO* bio, const void* data, int len)
834834
(const char*)data, len, 0, ret);
835835
}
836836

837-
if (frmt != NULL) {
838-
XFREE(frmt, front->heap, DYNAMIC_TYPE_TMP_BUFFER);
839-
}
837+
XFREE(frmt, front->heap, DYNAMIC_TYPE_TMP_BUFFER);
840838

841839
#ifdef WOLFSSL_BASE64_ENCODE
842840
if (retB64 > 0 && ret > 0)
@@ -2969,9 +2967,7 @@ int wolfSSL_BIO_flush(WOLFSSL_BIO* bio)
29692967
bio->pair->pair = NULL;
29702968
}
29712969

2972-
if (bio->ip != NULL) {
2973-
XFREE(bio->ip, bio->heap, DYNAMIC_TYPE_OPENSSL);
2974-
}
2970+
XFREE(bio->ip, bio->heap, DYNAMIC_TYPE_OPENSSL);
29752971

29762972
if (bio->shutdown) {
29772973
if (bio->type == WOLFSSL_BIO_SSL && bio->ptr.ssl)

src/dtls13.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -811,9 +811,7 @@ static void Dtls13MaybeSaveClientHello(WOLFSSL* ssl)
811811
while (r != NULL) {
812812
if (r->handshakeType == client_hello) {
813813
Dtls13RtxRecordUnlink(ssl, prev_next, r);
814-
if (ssl->dtls13ClientHello != NULL)
815-
XFREE(ssl->dtls13ClientHello, ssl->heap,
816-
DYNAMIC_TYPE_DTLS_MSG);
814+
XFREE(ssl->dtls13ClientHello, ssl->heap, DYNAMIC_TYPE_DTLS_MSG);
817815
ssl->dtls13ClientHello = r->data;
818816
ssl->dtls13ClientHelloSz = r->length;
819817
r->data = NULL;

src/internal.c

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4564,9 +4564,7 @@ void FreeX509(WOLFSSL_X509* x509)
45644564
XFREE(x509->sig.buffer, x509->heap, DYNAMIC_TYPE_SIGNATURE);
45654565
x509->sig.buffer = NULL;
45664566
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
4567-
if (x509->authKeyIdSrc != NULL) {
4568-
XFREE(x509->authKeyIdSrc, x509->heap, DYNAMIC_TYPE_X509_EXT);
4569-
}
4567+
XFREE(x509->authKeyIdSrc, x509->heap, DYNAMIC_TYPE_X509_EXT);
45704568
else {
45714569
XFREE(x509->authKeyId, x509->heap, DYNAMIC_TYPE_X509_EXT);
45724570
}
@@ -4588,9 +4586,7 @@ void FreeX509(WOLFSSL_X509* x509)
45884586
}
45894587
#if defined(OPENSSL_ALL) || defined(OPENSSL_EXTRA) || \
45904588
defined(WOLFSSL_QT)
4591-
if (x509->authInfoCaIssuer != NULL) {
4592-
XFREE(x509->authInfoCaIssuer, x509->heap, DYNAMIC_TYPE_X509_EXT);
4593-
}
4589+
XFREE(x509->authInfoCaIssuer, x509->heap, DYNAMIC_TYPE_X509_EXT);
45944590
if (x509->ext_sk != NULL) {
45954591
wolfSSL_sk_X509_EXTENSION_pop_free(x509->ext_sk, NULL);
45964592
}
@@ -8375,9 +8371,7 @@ void SSL_ResourceFree(WOLFSSL* ssl)
83758371
}
83768372
#endif
83778373
#ifdef OPENSSL_EXTRA
8378-
if (ssl->param) {
8379-
XFREE(ssl->param, ssl->heap, DYNAMIC_TYPE_OPENSSL);
8380-
}
8374+
XFREE(ssl->param, ssl->heap, DYNAMIC_TYPE_OPENSSL);
83818375
#endif
83828376
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
83838377
while (ssl->certReqCtx != NULL) {
@@ -13261,12 +13255,9 @@ static int ProcessCSR(WOLFSSL* ssl, byte* input, word32* inOutIdx,
1326113255
DYNAMIC_TYPE_OCSP_REQUEST);
1326213256

1326313257
if (status == NULL || single == NULL || response == NULL) {
13264-
if (status)
13265-
XFREE(status, ssl->heap, DYNAMIC_TYPE_OCSP_STATUS);
13266-
if (single)
13267-
XFREE(single, ssl->heap, DYNAMIC_TYPE_OCSP_ENTRY);
13268-
if (response)
13269-
XFREE(response, ssl->heap, DYNAMIC_TYPE_OCSP_REQUEST);
13258+
XFREE(status, ssl->heap, DYNAMIC_TYPE_OCSP_STATUS);
13259+
XFREE(single, ssl->heap, DYNAMIC_TYPE_OCSP_ENTRY);
13260+
XFREE(response, ssl->heap, DYNAMIC_TYPE_OCSP_REQUEST);
1327013261

1327113262
return MEMORY_ERROR;
1327213263
}
@@ -15033,8 +15024,7 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx,
1503315024
if (dCertAdd_inited)
1503415025
FreeDecodedCert(dCertAdd);
1503515026
#ifdef WOLFSSL_SMALL_STACK
15036-
if (dCertAdd)
15037-
XFREE(dCertAdd, ssl->heap, DYNAMIC_TYPE_TMP_BUFFER);
15027+
XFREE(dCertAdd, ssl->heap, DYNAMIC_TYPE_TMP_BUFFER);
1503815028
#endif
1503915029
if (ret != 0)
1504015030
goto exit_ppc;
@@ -16222,12 +16212,9 @@ static int DoCertificateStatus(WOLFSSL* ssl, byte* input, word32* inOutIdx,
1622216212
DYNAMIC_TYPE_OCSP_REQUEST);
1622316213

1622416214
if (status == NULL || single == NULL || response == NULL) {
16225-
if (status)
16226-
XFREE(status, ssl->heap, DYNAMIC_TYPE_OCSP_STATUS);
16227-
if (single)
16228-
XFREE(single, ssl->heap, DYNAMIC_TYPE_OCSP_ENTRY);
16229-
if (response)
16230-
XFREE(response, ssl->heap, DYNAMIC_TYPE_OCSP_REQUEST);
16215+
XFREE(status, ssl->heap, DYNAMIC_TYPE_OCSP_STATUS);
16216+
XFREE(single, ssl->heap, DYNAMIC_TYPE_OCSP_ENTRY);
16217+
XFREE(response, ssl->heap, DYNAMIC_TYPE_OCSP_REQUEST);
1623116218

1623216219
return MEMORY_ERROR;
1623316220
}
@@ -37152,8 +37139,7 @@ static int DoSessionTicket(WOLFSSL* ssl, const byte* input, word32* inOutIdx,
3715237139
ssl->clSuites = NULL;
3715337140
#endif
3715437141
#ifdef WOLFSSL_SMALL_STACK
37155-
if (clSuites != NULL)
37156-
XFREE(clSuites, ssl->heap, DYNAMIC_TYPE_SUITES);
37142+
XFREE(clSuites, ssl->heap, DYNAMIC_TYPE_SUITES);
3715737143
#endif
3715837144
WOLFSSL_LEAVE("DoClientHello", ret);
3715937145
WOLFSSL_END(WC_FUNC_CLIENT_HELLO_DO);

src/ocsp.c

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -374,10 +374,7 @@ int CheckOcspResponse(WOLFSSL_OCSP *ocsp, byte *response, int responseSz,
374374
}
375375

376376
if (status != NULL) {
377-
if (status->rawOcspResponse) {
378-
XFREE(status->rawOcspResponse, ocsp->cm->heap,
379-
DYNAMIC_TYPE_OCSP_STATUS);
380-
}
377+
XFREE(status->rawOcspResponse, ocsp->cm->heap, DYNAMIC_TYPE_OCSP_STATUS);
381378

382379
/* Replace existing certificate entry with updated */
383380
ocspResponse->single->status->next = status->next;
@@ -831,13 +828,11 @@ WOLFSSL_OCSP_CERTID* wolfSSL_OCSP_cert_to_id(
831828
XFREE(certId, cm->heap, DYNAMIC_TYPE_OPENSSL);
832829
certId = NULL;
833830
}
834-
if (certStatus)
835-
XFREE(certStatus, cm->heap, DYNAMIC_TYPE_OPENSSL);
831+
XFREE(certStatus, cm->heap, DYNAMIC_TYPE_OPENSSL);
836832
}
837833

838834
#ifdef WOLFSSL_SMALL_STACK
839-
if (cert != NULL)
840-
XFREE(cert, cm->heap, DYNAMIC_TYPE_DCERT);
835+
XFREE(cert, cm->heap, DYNAMIC_TYPE_DCERT);
841836
#endif
842837

843838
if (cm != NULL)
@@ -1167,8 +1162,7 @@ WOLFSSL_OCSP_ONEREQ* wolfSSL_OCSP_request_add0_id(OcspRequest *req,
11671162
XMEMCPY(req->issuerHash, cid->issuerHash, KEYID_SIZE);
11681163
XMEMCPY(req->issuerKeyHash, cid->issuerKeyHash, KEYID_SIZE);
11691164
if (cid->status->serialSz > req->serialSz) {
1170-
if (req->serial != NULL)
1171-
XFREE(req->serial, req->heap, DYNAMIC_TYPE_OCSP);
1165+
XFREE(req->serial, req->heap, DYNAMIC_TYPE_OCSP);
11721166
req->serial = (byte*)XMALLOC((size_t)cid->status->serialSz,
11731167
req->heap, DYNAMIC_TYPE_OCSP_REQUEST);
11741168
if (req->serial == NULL)

src/pk.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4691,8 +4691,7 @@ int wolfSSL_RSA_GenAdd(WOLFSSL_RSA* rsa)
46914691
mp_clear(t);
46924692

46934693
#ifdef WOLFSSL_SMALL_STACK
4694-
if (tmp != NULL)
4695-
XFREE(tmp, rsa->heap, DYNAMIC_TYPE_TMP_BUFFER);
4694+
XFREE(tmp, rsa->heap, DYNAMIC_TYPE_TMP_BUFFER);
46964695
#endif
46974696

46984697
return ret;

src/ssl.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11559,8 +11559,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
1155911559
wc_FreeRng(&rng);
1156011560
} else {
1156111561
/* save password for wolfSSL_set_srp_username */
11562-
if (ctx->srp_password != NULL)
11563-
XFREE(ctx->srp_password,ctx->heap, DYNAMIC_TYPE_SRP);
11562+
XFREE(ctx->srp_password, ctx->heap, DYNAMIC_TYPE_SRP);
1156411563

1156511564
ctx->srp_password = (byte*)XMALLOC(XSTRLEN(password) + 1, ctx->heap,
1156611565
DYNAMIC_TYPE_SRP);
@@ -13572,9 +13571,7 @@ WOLFSSL_STACK* wolfSSL_sk_new_node(void* heap)
1357213571
/* free's node but does not free internal data such as in->data.x509 */
1357313572
void wolfSSL_sk_free_node(WOLFSSL_STACK* in)
1357413573
{
13575-
if (in != NULL) {
13576-
XFREE(in, in->heap, DYNAMIC_TYPE_OPENSSL);
13577-
}
13574+
XFREE(in, in->heap, DYNAMIC_TYPE_OPENSSL);
1357813575
}
1357913576

1358013577
/* pushes node "in" onto "stack" and returns pointer to the new stack on success

src/ssl_certman.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1382,9 +1382,7 @@ int CM_SaveCertCache(WOLFSSL_CERT_MANAGER* cm, const char* fname)
13821382
ret = FWRITE_ERROR;
13831383
}
13841384
}
1385-
if (mem != NULL) {
1386-
XFREE(mem, cm->heap, DYNAMIC_TYPE_TMP_BUFFER);
1387-
}
1385+
XFREE(mem, cm->heap, DYNAMIC_TYPE_TMP_BUFFER);
13881386

13891387
/* Unlock CA table. */
13901388
wc_UnLockMutex(&cm->caLock);

src/ssl_p7p12.c

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -714,9 +714,7 @@ int wolfSSL_PKCS7_final(PKCS7* pkcs7, WOLFSSL_BIO* in, int flags)
714714
}
715715
}
716716

717-
if (mem != NULL) {
718-
XFREE(mem, in->heap, DYNAMIC_TYPE_TMP_BUFFER);
719-
}
717+
XFREE(mem, in->heap, DYNAMIC_TYPE_TMP_BUFFER);
720718
}
721719
else {
722720
#ifdef HAVE_SMIME
@@ -1034,19 +1032,11 @@ int wolfSSL_PEM_write_bio_PKCS7(WOLFSSL_BIO* bio, PKCS7* p7)
10341032

10351033
error:
10361034
#ifdef WOLFSSL_SMALL_STACK
1037-
if (outputHead) {
1038-
XFREE(outputHead, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
1039-
}
1040-
if (outputFoot) {
1041-
XFREE(outputFoot, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
1042-
}
1035+
XFREE(outputHead, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
1036+
XFREE(outputFoot, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
10431037
#endif
1044-
if (output) {
1045-
XFREE(output, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
1046-
}
1047-
if (pem) {
1048-
XFREE(pem, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
1049-
}
1038+
XFREE(output, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
1039+
XFREE(pem, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
10501040
return WOLFSSL_FAILURE;
10511041
}
10521042

@@ -1692,8 +1682,7 @@ WC_PKCS12* wolfSSL_d2i_PKCS12_bio(WOLFSSL_BIO* bio, WC_PKCS12** pkcs12)
16921682
}
16931683

16941684
/* cleanup */
1695-
if (mem != NULL)
1696-
XFREE(mem, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
1685+
XFREE(mem, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
16971686
if (ret < 0 && localPkcs12 != NULL) {
16981687
wc_PKCS12_free(localPkcs12);
16991688
localPkcs12 = NULL;

src/ssl_sess.c

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,8 +1309,7 @@ int wolfSSL_GetSessionFromCache(WOLFSSL* ssl, WOLFSSL_SESSION* output)
13091309
output->ticketLenAlloc = 0;
13101310
}
13111311
#ifdef WOLFSSL_SMALL_STACK
1312-
if (tmpTicket != NULL)
1313-
XFREE(tmpTicket, output->heap, DYNAMIC_TYPE_TMP_BUFFER);
1312+
XFREE(tmpTicket, output->heap, DYNAMIC_TYPE_TMP_BUFFER);
13141313
#endif
13151314
return WOLFSSL_FAILURE;
13161315
}
@@ -1417,8 +1416,7 @@ int wolfSSL_GetSessionFromCache(WOLFSSL* ssl, WOLFSSL_SESSION* output)
14171416
}
14181417
}
14191418
#ifdef WOLFSSL_SMALL_STACK
1420-
if (tmpTicket != NULL)
1421-
XFREE(tmpTicket, output->heap, DYNAMIC_TYPE_TMP_BUFFER);
1419+
XFREE(tmpTicket, output->heap, DYNAMIC_TYPE_TMP_BUFFER);
14221420
#endif
14231421

14241422
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_TICKET_NONCE_MALLOC) && \
@@ -1455,8 +1453,7 @@ int wolfSSL_GetSessionFromCache(WOLFSSL* ssl, WOLFSSL_SESSION* output)
14551453
preallocNonce = NULL;
14561454
}
14571455
}
1458-
if (preallocNonce != NULL)
1459-
XFREE(preallocNonce, output->heap, DYNAMIC_TYPE_SESSION_TICK);
1456+
XFREE(preallocNonce, output->heap, DYNAMIC_TYPE_SESSION_TICK);
14601457
#endif /* WOLFSSL_TLS13 && WOLFSSL_TICKET_NONCE_MALLOC && FIPS_VERSION_GE(5,3)*/
14611458

14621459
#endif
@@ -1839,8 +1836,7 @@ int AddSessionToCache(WOLFSSL_CTX* ctx, WOLFSSL_SESSION* addSession,
18391836
preallocNonce = (byte*)XMALLOC(addSession->ticketNonce.len,
18401837
addSession->heap, DYNAMIC_TYPE_SESSION_TICK);
18411838
if (preallocNonce == NULL) {
1842-
if (ticBuff != NULL)
1843-
XFREE(ticBuff, addSession->heap, DYNAMIC_TYPE_SESSION_TICK);
1839+
XFREE(ticBuff, addSession->heap, DYNAMIC_TYPE_SESSION_TICK);
18441840
return MEMORY_E;
18451841
}
18461842
preallocNonceLen = addSession->ticketNonce.len;
@@ -3906,8 +3902,7 @@ static int wolfSSL_DupSessionEx(const WOLFSSL_SESSION* input,
39063902
}
39073903
}
39083904
else {
3909-
if (ticBuff != NULL)
3910-
XFREE(ticBuff, output->heap, DYNAMIC_TYPE_SESSION_TICK);
3905+
XFREE(ticBuff, output->heap, DYNAMIC_TYPE_SESSION_TICK);
39113906
output->ticket = output->staticTicket;
39123907
output->ticketLenAlloc = 0;
39133908
}

src/tls.c

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6744,8 +6744,7 @@ int TLSX_Cookie_Use(const WOLFSSL* ssl, const byte* data, word16 len, byte* mac,
67446744
if (mac != NULL)
67456745
XMEMCPY(cookie->data + len, mac, macSz);
67466746

6747-
if (extension->data != NULL)
6748-
XFREE(extension->data, ssl->heap, DYNAMIC_TYPE_TLSX);
6747+
XFREE(extension->data, ssl->heap, DYNAMIC_TYPE_TLSX);
67496748

67506749
extension->data = (void*)cookie;
67516750
extension->resp = (byte)resp;
@@ -7953,10 +7952,8 @@ static int TLSX_KeyShare_GenPqcKey(WOLFSSL *ssl, KeyShareEntry* kse)
79537952

79547953
wc_KyberKey_Free(kem);
79557954
TLSX_KeyShare_FreeAll(ecc_kse, ssl->heap);
7956-
if (pubKey != NULL)
7957-
XFREE(pubKey, ssl->heap, DYNAMIC_TYPE_PUBLIC_KEY);
7958-
if (privKey != NULL)
7959-
XFREE(privKey, ssl->heap, DYNAMIC_TYPE_PRIVATE_KEY);
7955+
XFREE(pubKey, ssl->heap, DYNAMIC_TYPE_PUBLIC_KEY);
7956+
XFREE(privKey, ssl->heap, DYNAMIC_TYPE_PRIVATE_KEY);
79607957

79617958
return ret;
79627959
}
@@ -8731,9 +8728,7 @@ static int TLSX_KeyShare_ProcessPqc(WOLFSSL* ssl, KeyShareEntry* keyShareEntry)
87318728
ssl->arrays->preMasterSz = (word32) sharedSecretLen;
87328729
}
87338730

8734-
if (sharedSecret != NULL) {
8735-
XFREE(sharedSecret, ssl->heap, DYNAMIC_TYPE_SECRET);
8736-
}
8731+
XFREE(sharedSecret, ssl->heap, DYNAMIC_TYPE_SECRET);
87378732

87388733
wc_ecc_free(&eccpubkey);
87398734
wc_KyberKey_Free(kem);
@@ -9220,9 +9215,7 @@ static int server_generate_pqc_ciphertext(WOLFSSL* ssl,
92209215
}
92219216

92229217
if (ret == 0) {
9223-
if (keyShareEntry->ke != NULL) {
9224-
XFREE(keyShareEntry->ke, ssl->heap, DYNAMIC_TYPE_PUBLIC_KEY);
9225-
}
9218+
XFREE(keyShareEntry->ke, ssl->heap, DYNAMIC_TYPE_PUBLIC_KEY);
92269219

92279220
keyShareEntry->ke = sharedSecret;
92289221
keyShareEntry->keLen = outlen + ssSz;
@@ -9240,10 +9233,8 @@ static int server_generate_pqc_ciphertext(WOLFSSL* ssl,
92409233
}
92419234

92429235
TLSX_KeyShare_FreeAll(ecc_kse, ssl->heap);
9243-
if (sharedSecret != NULL)
9244-
XFREE(sharedSecret, ssl->heap, DYNAMIC_TYPE_SECRET);
9245-
if (ciphertext != NULL)
9246-
XFREE(ciphertext, ssl->heap, DYNAMIC_TYPE_TLSX);
9236+
XFREE(sharedSecret, ssl->heap, DYNAMIC_TYPE_SECRET);
9237+
XFREE(ciphertext, ssl->heap, DYNAMIC_TYPE_TLSX);
92479238
wc_ecc_free(&eccpubkey);
92489239
wc_KyberKey_Free(kem);
92499240
return ret;
@@ -9308,9 +9299,7 @@ int TLSX_KeyShare_Use(const WOLFSSL* ssl, word16 group, word16 len, byte* data,
93089299
else
93099300
#endif
93109301
if (data != NULL) {
9311-
if (keyShareEntry->ke != NULL) {
9312-
XFREE(keyShareEntry->ke, ssl->heap, DYNAMIC_TYPE_PUBLIC_KEY);
9313-
}
9302+
XFREE(keyShareEntry->ke, ssl->heap, DYNAMIC_TYPE_PUBLIC_KEY);
93149303
keyShareEntry->ke = data;
93159304
keyShareEntry->keLen = len;
93169305
}

0 commit comments

Comments
 (0)