@@ -7040,18 +7040,13 @@ int wolfSSL_X509_signature_print(WOLFSSL_BIO *bp,
70407040
70417041 for (i = 0 ; i < length ; ++ i ) {
70427042 char hex_digits [4 ];
7043- #ifdef XSNPRINTF
70447043 if (XSNPRINTF (hex_digits , sizeof (hex_digits ), "%c%02X" , i > 0 ? ':' : ' ' ,
70457044 (unsigned int )sigalg -> algorithm -> obj [idx + i ])
70467045 >= (int )sizeof (hex_digits ))
70477046 {
70487047 WOLFSSL_MSG ("buffer overrun" );
70497048 return WOLFSSL_FAILURE ;
70507049 }
7051- #else
7052- XSPRINTF (hex_digits , "%c%02X" , i > 0 ? ':' : ' ' ,
7053- (unsigned int )sigalg -> algorithm -> obj [idx + i ]);
7054- #endif
70557050 if (wolfSSL_BIO_puts (bp , hex_digits ) <= 0 )
70567051 return WOLFSSL_FAILURE ;
70577052 }
@@ -9005,14 +9000,13 @@ int wolfSSL_X509_VERIFY_PARAM_set1_ip(WOLFSSL_X509_VERIFY_PARAM* param,
90059000 if (iplen == 4 ) {
90069001 /* ipv4 www.xxx.yyy.zzz max 15 length + Null termination */
90079002 buf = (char * )XMALLOC (16 , NULL , DYNAMIC_TYPE_TMP_BUFFER );
9008-
90099003 if (!buf ) {
90109004 WOLFSSL_MSG ("failed malloc" );
90119005 return ret ;
90129006 }
90139007
9014- XSPRINTF ( buf , "%d.%d.%d.%d" , ip [0 ], ip [1 ], ip [2 ], ip [3 ]);
9015- buf [15 ] = '\0' ;
9008+ ( void ) XSNPRINTF ( buf , 16 , "%d.%d.%d.%d" , ip [0 ], ip [1 ], ip [2 ], ip [3 ]);
9009+ buf [15 ] = '\0' ; /* null terminate */
90169010 }
90179011 else if (iplen == 16 ) {
90189012 /* ipv6 normal address scheme
@@ -9041,47 +9035,46 @@ int wolfSSL_X509_VERIFY_PARAM_set1_ip(WOLFSSL_X509_VERIFY_PARAM* param,
90419035 * to re-construct IP address in ascii.
90429036 */
90439037 buf = (char * )XMALLOC (max_ipv6_len , NULL , DYNAMIC_TYPE_TMP_BUFFER );
9044-
90459038 if (!buf ) {
90469039 WOLFSSL_MSG ("failed malloc" );
90479040 return ret ;
90489041 }
90499042 p = buf ;
90509043 for (i = 0 ; i < 16 ; i += 2 ) {
9051- val = (((word32 )(ip [i ]<<8 )) | (ip [i + 1 ])) & 0xFFFF ;
9052- if (val == 0 ){
9053- if (!write_zero ) {
9044+ val = (((word32 )(ip [i ]<<8 )) | (ip [i + 1 ])) & 0xFFFF ;
9045+ if (val == 0 ){
9046+ if (!write_zero ) {
90549047 * p = ':' ;
9055- }
9056- p ++ ;
9057- * p = '\0' ;
9058- write_zero = 1 ;
9059- }
9060- else {
9061- if (i != 0 )
9062- * p ++ = ':' ;
9063- XSPRINTF (p , "%x" , val );
9064- }
9065- /* sanity check */
9066- if (XSTRLEN (buf ) > max_ipv6_len ) {
9067- WOLFSSL_MSG ("The target ip address exceeds buffer length(40)" );
9068- XFREE (buf , NULL , DYNAMIC_TYPE_TMP_BUFFER );
9069- buf = NULL ;
9070- break ;
9071- }
9072- /* move the pointer to the last */
9073- /* XSTRLEN includes NULL because of XSPRINTF use */
9074- p = buf + (XSTRLEN (buf ));
9048+ }
9049+ p ++ ;
9050+ * p = '\0' ;
9051+ write_zero = 1 ;
9052+ }
9053+ else {
9054+ if (i != 0 ) {
9055+ * p ++ = ':' ;
9056+ }
9057+ (void )XSNPRINTF (p , max_ipv6_len - (size_t )(p - buf ), "%x" , val );
9058+ }
9059+ /* sanity check */
9060+ if (XSTRLEN (buf ) > max_ipv6_len ) {
9061+ WOLFSSL_MSG ("The target ip address exceeds buffer length(40)" );
9062+ XFREE (buf , NULL , DYNAMIC_TYPE_TMP_BUFFER );
9063+ buf = NULL ;
9064+ break ;
9065+ }
9066+ /* move the pointer to the last */
9067+ /* XSTRLEN includes NULL because of XSPRINTF use */
9068+ p = buf + (XSTRLEN (buf ));
90759069 }
90769070 /* termination */
9077- if (i == 16 && buf ) {
9071+ if (i == 16 && buf ) {
90789072 p -- ;
90799073 if ((* p ) == ':' ) {
9080- /* when the last character is :, the following segments are zero
9081- * Therefore, adding : and null termination
9082- */
9083- p ++ ;
9084- * p ++ = ':' ;
9074+ /* when the last character is :, the following segments are zero
9075+ * Therefore, adding : and null termination */
9076+ p ++ ;
9077+ * p ++ = ':' ;
90859078 * p = '\0' ;
90869079 }
90879080 }
@@ -9092,7 +9085,7 @@ int wolfSSL_X509_VERIFY_PARAM_set1_ip(WOLFSSL_X509_VERIFY_PARAM* param,
90929085 }
90939086
90949087 if (buf ) {
9095- /* set address to ip asc */
9088+ /* set address to ip asc */
90969089 ret = wolfSSL_X509_VERIFY_PARAM_set1_ip_asc (param , buf );
90979090 XFREE (buf , NULL , DYNAMIC_TYPE_TMP_BUFFER );
90989091 }
0 commit comments