@@ -511,12 +511,12 @@ static int TlsDecodeHSCertificate(SSLState *ssl_state, SSLStateConnp *connp,
511511 sans [i ] = SCX509GetSubjectAltNameAt (x509 , i );
512512 }
513513 connp -> cert0_sans = sans ;
514- char * str = SCX509GetSerial (x509 );
515- if (str == NULL ) {
514+
515+ SCX509GetSerial (x509 , & connp -> cert0_serial , & connp -> cert0_serial_len );
516+ if (connp -> cert0_serial == NULL ) {
516517 err_code = ERR_INVALID_SERIAL ;
517518 goto error ;
518519 }
519- connp -> cert0_serial = str ;
520520
521521 rc = SCX509GetValidity (x509 , & connp -> cert0_not_before , & connp -> cert0_not_after );
522522 if (rc != 0 ) {
@@ -2859,7 +2859,8 @@ static void SSLStateFree(void *p)
28592859 SCX509ArrayFree (
28602860 ssl_state -> client_connp .cert0_issuerdn , ssl_state -> client_connp .cert0_issuerdn_len );
28612861 if (ssl_state -> client_connp .cert0_serial )
2862- SCRustCStringFree (ssl_state -> client_connp .cert0_serial );
2862+ SCX509ArrayFree (
2863+ ssl_state -> client_connp .cert0_serial , ssl_state -> client_connp .cert0_serial_len );
28632864 if (ssl_state -> client_connp .cert0_fingerprint )
28642865 SCFree (ssl_state -> client_connp .cert0_fingerprint );
28652866 if (ssl_state -> client_connp .sni )
@@ -2876,7 +2877,8 @@ static void SSLStateFree(void *p)
28762877 SCX509ArrayFree (
28772878 ssl_state -> server_connp .cert0_issuerdn , ssl_state -> server_connp .cert0_issuerdn_len );
28782879 if (ssl_state -> server_connp .cert0_serial )
2879- SCRustCStringFree (ssl_state -> server_connp .cert0_serial );
2880+ SCX509ArrayFree (
2881+ ssl_state -> server_connp .cert0_serial , ssl_state -> server_connp .cert0_serial_len );
28802882 if (ssl_state -> server_connp .cert0_fingerprint )
28812883 SCFree (ssl_state -> server_connp .cert0_fingerprint );
28822884 if (ssl_state -> server_connp .sni )
0 commit comments