diff options
author | Rob Austein <sra@hactrn.net> | 2013-01-29 23:23:10 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2013-01-29 23:23:10 +0000 |
commit | 91245d338cefa204088276bd5a4d2907d3586cd0 (patch) | |
tree | 0b959c7742ff8c69c2cf399c65330047d5566074 /rcynic | |
parent | 10b6151727182e7caa7fdfad2d67e406e3afc726 (diff) |
Check for empty RFC 3779 extensions. See #406.
svn path=/trunk/; revision=4981
Diffstat (limited to 'rcynic')
-rw-r--r-- | rcynic/rcynic.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/rcynic/rcynic.c b/rcynic/rcynic.c index 2f37ed79..0634bc52 100644 --- a/rcynic/rcynic.c +++ b/rcynic/rcynic.c @@ -3707,7 +3707,8 @@ static int check_x509(rcynic_ctx_t *rc, ex_count--; if ((loc = X509_get_ext_by_NID(x, NID_sbgp_ipAddrBlock, -1)) < 0 || !X509_EXTENSION_get_critical(X509_get_ext(x, loc)) || - !v3_addr_is_canonical(x->rfc3779_addr)) { + !v3_addr_is_canonical(x->rfc3779_addr) || + sk_IPAddressFamily_num(x->rfc3779_addr) == 0) { log_validation_status(rc, uri, bad_ipaddrblocks, generation); goto done; } @@ -3718,6 +3719,7 @@ static int check_x509(rcynic_ctx_t *rc, if ((loc = X509_get_ext_by_NID(x, NID_sbgp_autonomousSysNum, -1)) < 0 || !X509_EXTENSION_get_critical(X509_get_ext(x, loc)) || !v3_asid_is_canonical(x->rfc3779_asid) || + x->rfc3779_asid->asnum == NULL || x->rfc3779_asid->rdi != NULL) { log_validation_status(rc, uri, bad_asidentifiers, generation); goto done; |