Commit 85881c1d authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

PR: 2411

Submitted by: Rob Austein <sra@hactrn.net>
Reviewed by: steve

Fix corner cases in RFC3779 code.
parent 968062b7
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -177,12 +177,18 @@ static int i2r_address(BIO *out,
  unsigned char addr[ADDR_RAW_BUF_LEN];
  int i, n;

  if (bs->length < 0)
    return 0;
  switch (afi) {
  case IANA_AFI_IPV4:
    if (bs->length > 4)
      return 0;
    addr_expand(addr, bs, 4, fill);
    BIO_printf(out, "%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]);
    break;
  case IANA_AFI_IPV6:
    if (bs->length > 16)
      return 0;
    addr_expand(addr, bs, 16, fill);
    for (n = 16; n > 1 && addr[n-1] == 0x00 && addr[n-2] == 0x00; n -= 2)
      ;
+1 −1
Original line number Diff line number Diff line
@@ -372,7 +372,7 @@ static int ASIdentifierChoice_is_canonical(ASIdentifierChoice *choice)
int v3_asid_is_canonical(ASIdentifiers *asid)
{
  return (asid == NULL ||
	  (ASIdentifierChoice_is_canonical(asid->asnum) ||
	  (ASIdentifierChoice_is_canonical(asid->asnum) &&
	   ASIdentifierChoice_is_canonical(asid->rdi)));
}