Skip to content

Commit 6fbd101

Browse files
authored
Merge pull request #9153 from effbiae/wc-small-stack
Small stack compress -- 3000line reduction
2 parents e877fa7 + f4b8f84 commit 6fbd101

62 files changed

Lines changed: 1573 additions & 4647 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/crl.c

Lines changed: 21 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -757,11 +757,7 @@ int BufferLoadCRL(WOLFSSL_CRL* crl, const byte* buff, long sz, int type,
757757
int ret = WOLFSSL_SUCCESS;
758758
const byte* myBuffer = buff; /* if DER ok, otherwise switch */
759759
DerBuffer* der = NULL;
760-
#ifdef WOLFSSL_SMALL_STACK
761-
DecodedCRL* dcrl;
762-
#else
763-
DecodedCRL dcrl[1];
764-
#endif
760+
WC_DECLARE_VAR(dcrl, DecodedCRL, 1, 0);
765761

766762
WOLFSSL_ENTER("BufferLoadCRL");
767763

@@ -796,9 +792,7 @@ int BufferLoadCRL(WOLFSSL_CRL* crl, const byte* buff, long sz, int type,
796792
crl->currentEntry = CRL_Entry_new(crl->heap);
797793
if (crl->currentEntry == NULL) {
798794
WOLFSSL_MSG_CERT_LOG("alloc CRL Entry failed");
799-
#ifdef WOLFSSL_SMALL_STACK
800-
XFREE(dcrl, NULL, DYNAMIC_TYPE_TMP_BUFFER);
801-
#endif
795+
WC_FREE_VAR_EX(dcrl, NULL, DYNAMIC_TYPE_TMP_BUFFER);
802796
FreeDer(&der);
803797
return MEMORY_E;
804798
}
@@ -825,9 +819,7 @@ int BufferLoadCRL(WOLFSSL_CRL* crl, const byte* buff, long sz, int type,
825819

826820
FreeDecodedCRL(dcrl);
827821

828-
#ifdef WOLFSSL_SMALL_STACK
829-
XFREE(dcrl, NULL, DYNAMIC_TYPE_TMP_BUFFER);
830-
#endif
822+
WC_FREE_VAR_EX(dcrl, NULL, DYNAMIC_TYPE_TMP_BUFFER);
831823

832824
FreeDer(&der);
833825

@@ -843,11 +835,7 @@ int GetCRLInfo(WOLFSSL_CRL* crl, CrlInfo* info, const byte* buff,
843835
const byte* myBuffer = buff; /* if DER ok, otherwise switch */
844836
DerBuffer* der = NULL;
845837
CRL_Entry* crle = NULL;
846-
#ifdef WOLFSSL_SMALL_STACK
847-
DecodedCRL* dcrl;
848-
#else
849-
DecodedCRL dcrl[1];
850-
#endif
838+
WC_DECLARE_VAR(dcrl, DecodedCRL, 1, 0);
851839

852840
WOLFSSL_ENTER("GetCRLInfo");
853841

@@ -883,9 +871,7 @@ int GetCRLInfo(WOLFSSL_CRL* crl, CrlInfo* info, const byte* buff,
883871
crle = CRL_Entry_new(crl->heap);
884872
if (crle == NULL) {
885873
WOLFSSL_MSG("alloc CRL Entry failed");
886-
#ifdef WOLFSSL_SMALL_STACK
887-
XFREE(dcrl, NULL, DYNAMIC_TYPE_TMP_BUFFER);
888-
#endif
874+
WC_FREE_VAR_EX(dcrl, NULL, DYNAMIC_TYPE_TMP_BUFFER);
889875
FreeDer(&der);
890876
return MEMORY_E;
891877
}
@@ -904,9 +890,7 @@ int GetCRLInfo(WOLFSSL_CRL* crl, CrlInfo* info, const byte* buff,
904890

905891
FreeDecodedCRL(dcrl);
906892

907-
#ifdef WOLFSSL_SMALL_STACK
908-
XFREE(dcrl, NULL, DYNAMIC_TYPE_TMP_BUFFER);
909-
#endif
893+
WC_FREE_VAR_EX(dcrl, NULL, DYNAMIC_TYPE_TMP_BUFFER);
910894

911895
FreeDer(&der);
912896
CRL_Entry_free(crle, crl->heap);
@@ -1254,23 +1238,14 @@ static int SwapLists(WOLFSSL_CRL* crl)
12541238
{
12551239
int ret;
12561240
CRL_Entry* newList;
1257-
#ifdef WOLFSSL_SMALL_STACK
1258-
WOLFSSL_CRL* tmp;
1259-
#else
1260-
WOLFSSL_CRL tmp[1];
1261-
#endif
1241+
WC_DECLARE_VAR(tmp, WOLFSSL_CRL, 1, 0);
12621242

1263-
#ifdef WOLFSSL_SMALL_STACK
1264-
tmp = (WOLFSSL_CRL*)XMALLOC(sizeof(WOLFSSL_CRL), NULL, DYNAMIC_TYPE_TMP_BUFFER);
1265-
if (tmp == NULL)
1266-
return MEMORY_E;
1267-
#endif
1243+
WC_ALLOC_VAR_EX(tmp, WOLFSSL_CRL, 1, NULL, DYNAMIC_TYPE_TMP_BUFFER,
1244+
return MEMORY_E);
12681245

12691246
if (InitCRL(tmp, crl->cm) < 0) {
12701247
WOLFSSL_MSG("Init tmp CRL failed");
1271-
#ifdef WOLFSSL_SMALL_STACK
1272-
XFREE(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
1273-
#endif
1248+
WC_FREE_VAR_EX(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
12741249
return WOLFSSL_FATAL_ERROR;
12751250
}
12761251

@@ -1279,9 +1254,7 @@ static int SwapLists(WOLFSSL_CRL* crl)
12791254
if (ret != WOLFSSL_SUCCESS) {
12801255
WOLFSSL_MSG("PEM LoadCRL on dir change failed");
12811256
FreeCRL(tmp, 0);
1282-
#ifdef WOLFSSL_SMALL_STACK
1283-
XFREE(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
1284-
#endif
1257+
WC_FREE_VAR_EX(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
12851258
return WOLFSSL_FATAL_ERROR;
12861259
}
12871260
}
@@ -1291,19 +1264,15 @@ static int SwapLists(WOLFSSL_CRL* crl)
12911264
if (ret != WOLFSSL_SUCCESS) {
12921265
WOLFSSL_MSG("DER LoadCRL on dir change failed");
12931266
FreeCRL(tmp, 0);
1294-
#ifdef WOLFSSL_SMALL_STACK
1295-
XFREE(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
1296-
#endif
1267+
WC_FREE_VAR_EX(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
12971268
return WOLFSSL_FATAL_ERROR;
12981269
}
12991270
}
13001271

13011272
if (wc_LockRwLock_Wr(&crl->crlLock) != 0) {
13021273
WOLFSSL_MSG("wc_LockRwLock_Wr failed");
13031274
FreeCRL(tmp, 0);
1304-
#ifdef WOLFSSL_SMALL_STACK
1305-
XFREE(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
1306-
#endif
1275+
WC_FREE_VAR_EX(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
13071276
return WOLFSSL_FATAL_ERROR;
13081277
}
13091278

@@ -1317,9 +1286,7 @@ static int SwapLists(WOLFSSL_CRL* crl)
13171286

13181287
FreeCRL(tmp, 0);
13191288

1320-
#ifdef WOLFSSL_SMALL_STACK
1321-
XFREE(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
1322-
#endif
1289+
WC_FREE_VAR_EX(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
13231290

13241291
return 0;
13251292
}
@@ -1505,11 +1472,7 @@ static THREAD_RETURN WOLFSSL_THREAD DoMonitor(void* arg)
15051472
int notifyFd;
15061473
int wd = -1;
15071474
WOLFSSL_CRL* crl = (WOLFSSL_CRL*)arg;
1508-
#ifdef WOLFSSL_SMALL_STACK
1509-
char* buff;
1510-
#else
1511-
char buff[8192];
1512-
#endif
1475+
WC_DECLARE_VAR(buff, char, 8192, 0);
15131476

15141477
WOLFSSL_ENTER("DoMonitor");
15151478

@@ -1614,9 +1577,7 @@ static THREAD_RETURN WOLFSSL_THREAD DoMonitor(void* arg)
16141577
}
16151578
}
16161579

1617-
#ifdef WOLFSSL_SMALL_STACK
1618-
XFREE(buff, NULL, DYNAMIC_TYPE_TMP_BUFFER);
1619-
#endif
1580+
WC_FREE_VAR_EX(buff, NULL, DYNAMIC_TYPE_TMP_BUFFER);
16201581

16211582
if (wd > 0) {
16221583
if (inotify_rm_watch(notifyFd, wd) < 0)
@@ -1826,22 +1787,14 @@ int LoadCRL(WOLFSSL_CRL* crl, const char* path, int type, int monitor)
18261787
{
18271788
int ret = WOLFSSL_SUCCESS;
18281789
char* name = NULL;
1829-
#ifdef WOLFSSL_SMALL_STACK
1830-
ReadDirCtx* readCtx = NULL;
1831-
#else
1832-
ReadDirCtx readCtx[1];
1833-
#endif
1790+
WC_DECLARE_VAR(readCtx, ReadDirCtx, 1, 0);
18341791

18351792
WOLFSSL_ENTER("LoadCRL");
18361793
if (crl == NULL)
18371794
return BAD_FUNC_ARG;
18381795

1839-
#ifdef WOLFSSL_SMALL_STACK
1840-
readCtx = (ReadDirCtx*)XMALLOC(sizeof(ReadDirCtx), crl->heap,
1841-
DYNAMIC_TYPE_TMP_BUFFER);
1842-
if (readCtx == NULL)
1843-
return MEMORY_E;
1844-
#endif
1796+
WC_ALLOC_VAR_EX(readCtx, ReadDirCtx, 1, crl->heap,
1797+
DYNAMIC_TYPE_TMP_BUFFER, return MEMORY_E);
18451798

18461799
/* try to load each regular file in path */
18471800
ret = wc_ReadDirFirst(readCtx, path, &name);
@@ -1873,9 +1826,7 @@ int LoadCRL(WOLFSSL_CRL* crl, const char* path, int type, int monitor)
18731826
if (ret != WOLFSSL_SUCCESS) {
18741827
WOLFSSL_MSG("CRL file load failed");
18751828
wc_ReadDirClose(readCtx);
1876-
#ifdef WOLFSSL_SMALL_STACK
1877-
XFREE(readCtx, crl->heap, DYNAMIC_TYPE_TMP_BUFFER);
1878-
#endif
1829+
WC_FREE_VAR_EX(readCtx, crl->heap, DYNAMIC_TYPE_TMP_BUFFER);
18791830
return ret;
18801831
}
18811832
}
@@ -1888,9 +1839,7 @@ int LoadCRL(WOLFSSL_CRL* crl, const char* path, int type, int monitor)
18881839
/* load failures not reported, for backwards compat */
18891840
ret = WOLFSSL_SUCCESS;
18901841

1891-
#ifdef WOLFSSL_SMALL_STACK
1892-
XFREE(readCtx, crl->heap, DYNAMIC_TYPE_TMP_BUFFER);
1893-
#endif
1842+
WC_FREE_VAR_EX(readCtx, crl->heap, DYNAMIC_TYPE_TMP_BUFFER);
18941843

18951844
if (monitor & WOLFSSL_CRL_MONITOR) {
18961845
#ifdef HAVE_CRL_MONITOR

0 commit comments

Comments
 (0)