@@ -1416,6 +1416,12 @@ static WOLFSSL_ASN1_STRING* wolfSSL_X509_EXTENSION_get_data_internal(
14161416
14171417
14181418#ifndef NO_BIO
1419+
1420+ #ifndef MAX_INDENT
1421+ #define MAX_INDENT 40
1422+ #endif
1423+
1424+
14191425/* Return 0 on success and 1 on failure. Copies ext data to bio, using indent
14201426 * to pad the output. flag is ignored. */
14211427int wolfSSL_X509V3_EXT_print (WOLFSSL_BIO * out , WOLFSSL_X509_EXTENSION * ext ,
@@ -1430,6 +1436,9 @@ int wolfSSL_X509V3_EXT_print(WOLFSSL_BIO *out, WOLFSSL_X509_EXTENSION *ext,
14301436 int tmpLen = 0 ;
14311437 WOLFSSL_ENTER ("wolfSSL_X509V3_EXT_print" );
14321438
1439+ if (indent < 0 ) indent = 0 ;
1440+ if (indent > MAX_INDENT ) indent = MAX_INDENT ;
1441+
14331442 if ((out == NULL ) || (ext == NULL )) {
14341443 WOLFSSL_MSG ("NULL parameter error" );
14351444 return rc ;
@@ -6223,6 +6232,9 @@ static int X509PrintKeyUsage(WOLFSSL_BIO* bio, WOLFSSL_X509* x509, int indent)
62236232 "Decipher Only"
62246233 };
62256234
6235+ if (indent < 0 ) indent = 0 ;
6236+ if (indent > MAX_INDENT ) indent = MAX_INDENT ;
6237+
62266238 if (bio == NULL || x509 == NULL ) {
62276239 ret = WOLFSSL_FAILURE ;
62286240 }
@@ -6394,6 +6406,9 @@ static int X509PrintSerial(WOLFSSL_BIO* bio, WOLFSSL_X509* x509, int indent)
63946406 unsigned char serial [32 ];
63956407 int sz = sizeof (serial );
63966408
6409+ if (indent < 0 ) indent = 0 ;
6410+ if (indent > MAX_INDENT ) indent = MAX_INDENT ;
6411+
63976412 XMEMSET (serial , 0 , sz );
63986413 if (wolfSSL_X509_get_serial_number (x509 , serial , & sz ) == WOLFSSL_SUCCESS ) {
63996414 X509PrintSerial_ex (bio , serial , sz , 1 , indent );
@@ -6486,6 +6501,9 @@ static int X509PrintExtensions(WOLFSSL_BIO* bio, WOLFSSL_X509* x509, int indent)
64866501 int count , i ;
64876502 char * buf = NULL ;
64886503
6504+ if (indent < 0 ) indent = 0 ;
6505+ if (indent > MAX_INDENT ) indent = MAX_INDENT ;
6506+
64896507 count = wolfSSL_X509_get_ext_count (x509 );
64906508 if (count <= 0 )
64916509 return WOLFSSL_SUCCESS ;
@@ -6899,6 +6917,9 @@ static int X509PrintPubKey(WOLFSSL_BIO* bio, WOLFSSL_X509* x509, int indent)
68996917 int len ;
69006918 int ret = WOLFSSL_SUCCESS ;
69016919
6920+ if (indent < 0 ) indent = 0 ;
6921+ if (indent > MAX_INDENT ) indent = MAX_INDENT ;
6922+
69026923 if (bio == NULL || x509 == NULL )
69036924 return BAD_FUNC_ARG ;
69046925
@@ -6986,6 +7007,9 @@ static int X509PrintVersion(WOLFSSL_BIO* bio, int version, int indent)
69867007 char scratch [MAX_WIDTH ];
69877008 int scratchLen ;
69887009
7010+ if (indent < 0 ) indent = 0 ;
7011+ if (indent > MAX_INDENT ) indent = MAX_INDENT ;
7012+
69897013 scratchLen = XSNPRINTF (scratch , MAX_WIDTH , "%*s%s" , indent , "" , "Version:" );
69907014 if ((scratchLen < 0 ) || (scratchLen >= MAX_WIDTH )) {
69917015 return WOLFSSL_FAILURE ;
@@ -7019,6 +7043,9 @@ static int X509PrintReqAttributes(WOLFSSL_BIO* bio, WOLFSSL_X509* x509,
70197043 int scratchLen ;
70207044 int i = 0 ;
70217045
7046+ if (indent < 0 ) indent = 0 ;
7047+ if (indent > MAX_INDENT ) indent = MAX_INDENT ;
7048+
70227049 if ((scratchLen = XSNPRINTF (scratch , MAX_WIDTH ,
70237050 "%*s%s" , indent , "" , "Attributes: \n" ))
70247051 >= MAX_WIDTH )
@@ -8746,6 +8773,9 @@ static int X509RevokedPrintSerial(WOLFSSL_BIO* bio, RevokedCert* rev,
87468773 unsigned char serial [32 ];
87478774 int sz = sizeof (serial );
87488775
8776+ if (indent < 0 ) indent = 0 ;
8777+ if (indent > MAX_INDENT ) indent = MAX_INDENT ;
8778+
87498779 XMEMSET (serial , 0 , sz );
87508780 if (wolfSSL_X509_REVOKED_get_serial_number (rev , serial , & sz )
87518781 == WOLFSSL_SUCCESS ) {
@@ -8807,6 +8837,9 @@ static int X509CRLPrintExtensions(WOLFSSL_BIO* bio, WOLFSSL_X509_CRL* crl,
88078837 char tmp [MAX_WIDTH ]; /* buffer for XSNPRINTF */
88088838 int ret = 0 ;
88098839
8840+ if (indent < 0 ) indent = 0 ;
8841+ if (indent > MAX_INDENT ) indent = MAX_INDENT ;
8842+
88108843 if (XSNPRINTF (tmp , MAX_WIDTH , "%*s%s\n" , indent , "" ,
88118844 "CRL extensions:" ) >= MAX_WIDTH ) {
88128845 ret = WOLFSSL_FAILURE ;
0 commit comments