Simplify length mismatch check in x509_get_pubkey
diff --git a/library/x509parse.c b/library/x509parse.c
index a284fd1..72cdf8d 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -550,7 +550,6 @@
     int ret;
     size_t len;
     x509_buf pk_alg_oid;
-    unsigned char *end2;
     pk_type_t pk_alg = POLARSSL_PK_NONE;
 
     if( ( ret = asn1_get_tag( p, end, &len,
@@ -582,7 +581,9 @@
         return( POLARSSL_ERR_X509_CERT_INVALID_PUBKEY +
                 POLARSSL_ERR_ASN1_OUT_OF_DATA );
 
-    end2 = *p + len;
+    if( *p + len != end )
+        return( POLARSSL_ERR_X509_CERT_INVALID_PUBKEY +
+                POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
     if( *(*p)++ != 0 )
         return( POLARSSL_ERR_X509_CERT_INVALID_PUBKEY );
@@ -593,22 +594,18 @@
      *      publicExponent    INTEGER   -- e
      *  }
      */
-    if( ( ret = asn1_get_tag( p, end2, &len,
+    if( ( ret = asn1_get_tag( p, end, &len,
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
         return( POLARSSL_ERR_X509_CERT_INVALID_PUBKEY + ret );
 
-    if( *p + len != end2 )
+    if( *p + len != end )
         return( POLARSSL_ERR_X509_CERT_INVALID_PUBKEY +
                 POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
 
-    if( ( ret = asn1_get_mpi( p, end2, &rsa->N ) ) != 0 ||
-        ( ret = asn1_get_mpi( p, end2, &rsa->E ) ) != 0 )
+    if( ( ret = asn1_get_mpi( p, end, &rsa->N ) ) != 0 ||
+        ( ret = asn1_get_mpi( p, end, &rsa->E ) ) != 0 )
         return( POLARSSL_ERR_X509_CERT_INVALID_PUBKEY + ret );
 
-    if( *p != end )
-        return( POLARSSL_ERR_X509_CERT_INVALID_PUBKEY +
-                POLARSSL_ERR_ASN1_LENGTH_MISMATCH );
-
     if( ( ret = rsa_check_pubkey( rsa ) ) != 0 )
         return( ret );