Fix memory error in asn1_get_alg()
diff --git a/library/asn1parse.c b/library/asn1parse.c
index 9d42f05..ff566c9 100644
--- a/library/asn1parse.c
+++ b/library/asn1parse.c
@@ -292,8 +292,11 @@
             ASN1_CONSTRUCTED | ASN1_SEQUENCE ) ) != 0 )
         return( ret );
 
-    end = *p + len;
+    if( ( end - *p ) < 1 )
+        return( POLARSSL_ERR_ASN1_OUT_OF_DATA );
+
     alg->tag = **p;
+    end = *p + len;
 
     if( ( ret = asn1_get_tag( p, end, &alg->len, ASN1_OID ) ) != 0 )
         return( ret );