]> git.sur5r.net Git - openldap/commitdiff
serial can be longer than ber_int_t (ITS#6460)
authorPierangelo Masarati <ando@openldap.org>
Wed, 14 Apr 2010 20:26:24 +0000 (20:26 +0000)
committerPierangelo Masarati <ando@openldap.org>
Wed, 14 Apr 2010 20:26:24 +0000 (20:26 +0000)
libraries/libldap/tls_g.c

index a7b6c5b2b78b342853072cd2d0152c13868ef40d..f49147a36c98df3e34c82fc80f7931c6cd6c8ff8 100644 (file)
@@ -545,7 +545,8 @@ tlsg_x509_cert_dn( struct berval *cert, struct berval *dn, int get_subject )
        tag = ber_skip_tag( ber, &len );        /* Context + Constructed (version) */
        if ( tag == 0xa0 )      /* Version is optional */
                tag = ber_get_int( ber, &i );   /* Int: Version */
-       tag = ber_get_int( ber, &i );   /* Int: Serial */
+       tag = ber_skip_tag( ber, &len );        /* Int: Serial (can be longer than ber_int_t) */
+       ber_skip_data( ber, len );
        tag = ber_skip_tag( ber, &len );        /* Sequence: Signature */
        ber_skip_data( ber, len );
        if ( !get_subject ) {