diff options
| author | djm <> | 2011-11-03 02:32:21 +0000 |
|---|---|---|
| committer | djm <> | 2011-11-03 02:32:21 +0000 |
| commit | 217868ba06006584e019bb825f91c811747a4cba (patch) | |
| tree | 79374ba6e81c08ba6e78220557d6f6e9ca03f7b7 /src/lib/libcrypto/x509v3/v3_addr.c | |
| parent | 2dd8058114e20f1cd7c897166a4ce75ed390ee54 (diff) | |
| download | openbsd-217868ba06006584e019bb825f91c811747a4cba.tar.gz openbsd-217868ba06006584e019bb825f91c811747a4cba.tar.bz2 openbsd-217868ba06006584e019bb825f91c811747a4cba.zip | |
import OpenSSL 1.0.0e
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_addr.c')
| -rw-r--r-- | src/lib/libcrypto/x509v3/v3_addr.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_addr.c b/src/lib/libcrypto/x509v3/v3_addr.c index 9087d66e0a..0d70e8696d 100644 --- a/src/lib/libcrypto/x509v3/v3_addr.c +++ b/src/lib/libcrypto/x509v3/v3_addr.c | |||
| @@ -177,12 +177,18 @@ static int i2r_address(BIO *out, | |||
| 177 | unsigned char addr[ADDR_RAW_BUF_LEN]; | 177 | unsigned char addr[ADDR_RAW_BUF_LEN]; |
| 178 | int i, n; | 178 | int i, n; |
| 179 | 179 | ||
| 180 | if (bs->length < 0) | ||
| 181 | return 0; | ||
| 180 | switch (afi) { | 182 | switch (afi) { |
| 181 | case IANA_AFI_IPV4: | 183 | case IANA_AFI_IPV4: |
| 184 | if (bs->length > 4) | ||
| 185 | return 0; | ||
| 182 | addr_expand(addr, bs, 4, fill); | 186 | addr_expand(addr, bs, 4, fill); |
| 183 | BIO_printf(out, "%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]); | 187 | BIO_printf(out, "%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]); |
| 184 | break; | 188 | break; |
| 185 | case IANA_AFI_IPV6: | 189 | case IANA_AFI_IPV6: |
| 190 | if (bs->length > 16) | ||
| 191 | return 0; | ||
| 186 | addr_expand(addr, bs, 16, fill); | 192 | addr_expand(addr, bs, 16, fill); |
| 187 | for (n = 16; n > 1 && addr[n-1] == 0x00 && addr[n-2] == 0x00; n -= 2) | 193 | for (n = 16; n > 1 && addr[n-1] == 0x00 && addr[n-2] == 0x00; n -= 2) |
| 188 | ; | 194 | ; |
