aboutsummaryrefslogtreecommitdiff
path: root/rcynic/rcynic.c
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2013-11-06 00:45:05 +0000
committerRob Austein <sra@hactrn.net>2013-11-06 00:45:05 +0000
commitfaafc15ecf6233aaffe548cf0d008ddb1bc8f0d2 (patch)
tree01bfda98866446d9733d863b0d95b2328ce840ee /rcynic/rcynic.c
parentc5cd789e779dac8caf48566ecd5f300190db2d6f (diff)
Check for certificate serial number too big. Fixes #642.
svn path=/trunk/; revision=5581
Diffstat (limited to 'rcynic/rcynic.c')
-rw-r--r--rcynic/rcynic.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/rcynic/rcynic.c b/rcynic/rcynic.c
index 720821bd..3907e120 100644
--- a/rcynic/rcynic.c
+++ b/rcynic/rcynic.c
@@ -3597,7 +3597,8 @@ static int check_x509(rcynic_ctx_t *rc,
certinfo->uri = *uri;
certinfo->generation = generation;
- if (ASN1_INTEGER_cmp(X509_get_serialNumber(x), asn1_zero) <= 0) {
+ if (ASN1_INTEGER_cmp(X509_get_serialNumber(x), asn1_zero) <= 0 ||
+ ASN1_INTEGER_cmp(X509_get_serialNumber(x), asn1_twenty_octets) > 0) {
log_validation_status(rc, uri, bad_certificate_serial_number, generation);
goto done;
}