diff options
Diffstat (limited to 'src/lib/libcrypto/x509/x509_v3.c')
-rw-r--r-- | src/lib/libcrypto/x509/x509_v3.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/libcrypto/x509/x509_v3.c b/src/lib/libcrypto/x509/x509_v3.c index 52887986fe..b5f7daa2e5 100644 --- a/src/lib/libcrypto/x509/x509_v3.c +++ b/src/lib/libcrypto/x509/x509_v3.c | |||
@@ -115,8 +115,8 @@ int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *sk, int crit, | |||
115 | for ( ; lastpos < n; lastpos++) | 115 | for ( ; lastpos < n; lastpos++) |
116 | { | 116 | { |
117 | ex=sk_X509_EXTENSION_value(sk,lastpos); | 117 | ex=sk_X509_EXTENSION_value(sk,lastpos); |
118 | if ( (ex->critical && crit) || | 118 | if ( ((ex->critical > 0) && crit) || |
119 | (!ex->critical && !crit)) | 119 | (!(ex->critical <= 0) && !crit)) |
120 | return(lastpos); | 120 | return(lastpos); |
121 | } | 121 | } |
122 | return(-1); | 122 | return(-1); |
@@ -234,7 +234,7 @@ int X509_EXTENSION_set_object(X509_EXTENSION *ex, ASN1_OBJECT *obj) | |||
234 | int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit) | 234 | int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit) |
235 | { | 235 | { |
236 | if (ex == NULL) return(0); | 236 | if (ex == NULL) return(0); |
237 | ex->critical=(crit)?0xFF:0; | 237 | ex->critical=(crit)?0xFF:-1; |
238 | return(1); | 238 | return(1); |
239 | } | 239 | } |
240 | 240 | ||
@@ -263,5 +263,6 @@ ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ex) | |||
263 | int X509_EXTENSION_get_critical(X509_EXTENSION *ex) | 263 | int X509_EXTENSION_get_critical(X509_EXTENSION *ex) |
264 | { | 264 | { |
265 | if (ex == NULL) return(0); | 265 | if (ex == NULL) return(0); |
266 | return(ex->critical); | 266 | if(ex->critical > 0) return 1; |
267 | return 0; | ||
267 | } | 268 | } |