diff --git a/crypto/x509/x509_trs.c b/crypto/x509/x509_trs.c
index 64380c0..7a5b81e 100644
--- a/crypto/x509/x509_trs.c
+++ b/crypto/x509/x509_trs.c
@@ -144,20 +144,16 @@
   if (!ax) {
     return X509_TRUST_UNTRUSTED;
   }
-  if (ax->reject) {
-    for (size_t i = 0; i < sk_ASN1_OBJECT_num(ax->reject); i++) {
-      const ASN1_OBJECT *obj = sk_ASN1_OBJECT_value(ax->reject, i);
-      if (OBJ_obj2nid(obj) == id) {
-        return X509_TRUST_REJECTED;
-      }
+  for (size_t i = 0; i < sk_ASN1_OBJECT_num(ax->reject); i++) {
+    const ASN1_OBJECT *obj = sk_ASN1_OBJECT_value(ax->reject, i);
+    if (OBJ_obj2nid(obj) == id) {
+      return X509_TRUST_REJECTED;
     }
   }
-  if (ax->trust) {
-    for (size_t i = 0; i < sk_ASN1_OBJECT_num(ax->trust); i++) {
-      const ASN1_OBJECT *obj = sk_ASN1_OBJECT_value(ax->trust, i);
-      if (OBJ_obj2nid(obj) == id) {
-        return X509_TRUST_TRUSTED;
-      }
+  for (size_t i = 0; i < sk_ASN1_OBJECT_num(ax->trust); i++) {
+    const ASN1_OBJECT *obj = sk_ASN1_OBJECT_value(ax->trust, i);
+    if (OBJ_obj2nid(obj) == id) {
+      return X509_TRUST_TRUSTED;
     }
   }
   return X509_TRUST_UNTRUSTED;
