diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2019-12-29 21:53:32 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2020-01-03 10:56:18 +0100 |
commit | dad163998fb38a27197b43bdd3e805f4a6817251 (patch) | |
tree | 5824ed3a3db0da7349799586a5a061391cf92dd7 /lib | |
parent | 91e811383c4b1849852ebcfc14fde382b083a779 (diff) | |
download | gnutls-dad163998fb38a27197b43bdd3e805f4a6817251.tar.gz |
gnutls_x509_crt_get_extension_info: optimize when critical equals NULL
That is, do not perform the look ups necessary to calculate the value
when it will not be used.
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/x509/x509.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/x509/x509.c b/lib/x509/x509.c index bf3e1e8f16..57c7182894 100644 --- a/lib/x509/x509.c +++ b/lib/x509/x509.c @@ -2695,16 +2695,16 @@ gnutls_x509_crt_get_extension_info(gnutls_x509_crt_t cert, unsigned indx, if (oid && len > 0 && ((uint8_t*)oid)[len-1] == 0) (*oid_size)--; - snprintf(name, sizeof(name), - "tbsCertificate.extensions.?%u.critical", indx + 1); - len = sizeof(str_critical); - result = asn1_read_value(cert->cert, name, str_critical, &len); - if (result != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); - } - if (critical) { + snprintf(name, sizeof(name), + "tbsCertificate.extensions.?%u.critical", indx + 1); + len = sizeof(str_critical); + result = asn1_read_value(cert->cert, name, str_critical, &len); + if (result != ASN1_SUCCESS) { + gnutls_assert(); + return _gnutls_asn2err(result); + } + if (str_critical[0] == 'T') *critical = 1; else |