X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fx509v3%2Fv3_addr.c;h=af080a04f2ba2035ff72b2ea0d7e921a1aaa4b4a;hp=1290dec9bb8c0ccec58b5476ec4d8ae16a6a6a5e;hb=31c8b265591a0aaa462a1f3eb5770661aaac67db;hpb=5553a12735e11bc9aa28727afe721e7236788aab diff --git a/crypto/x509v3/v3_addr.c b/crypto/x509v3/v3_addr.c index 1290dec9bb..af080a04f2 100644 --- a/crypto/x509v3/v3_addr.c +++ b/crypto/x509v3/v3_addr.c @@ -130,10 +130,12 @@ static int length_from_afi(const unsigned afi) */ unsigned int v3_addr_get_afi(const IPAddressFamily *f) { - return ((f != NULL && - f->addressFamily != NULL && f->addressFamily->data != NULL) - ? ((f->addressFamily->data[0] << 8) | (f->addressFamily->data[1])) - : 0); + if (f == NULL + || f->addressFamily == NULL + || f->addressFamily->data == NULL + || f->addressFamily->length < 2) + return 0; + return (f->addressFamily->data[0] << 8) | f->addressFamily->data[1]; } /*