Commit 587a7fbc authored by teor's avatar teor
Browse files

core/or: Check extends for zero addresses and ports

Check for invalid zero IPv4 addresses and ports, when sending and
receiving extend cells.

Fixes bug 33900; bugfix on 0.2.4.8-alpha.
parent f6c8a8c5
Loading
Loading
Loading
Loading

changes/bug33900

0 → 100644
+3 −0
Original line number Diff line number Diff line
  o Minor bugfixes (IPv4, relay):
    - Check for invalid zero IPv4 addresses and ports, when sending and
      receiving extend cells. Fixes bug 33900; bugfix on 0.2.4.8-alpha.
+2 −2
Original line number Diff line number Diff line
@@ -244,14 +244,14 @@ check_extend_cell(const extend_cell_t *cell)

  if (tor_digest_is_zero((const char*)cell->node_id))
    return -1;
  if (tor_addr_family(&cell->orport_ipv4.addr) == AF_UNSPEC) {
  if (!tor_addr_port_is_valid_ap(&cell->orport_ipv4, 0)) {
    /* EXTEND cells must have an IPv4 address. */
    if (!is_extend2) {
      return -1;
    }
    /* EXTEND2 cells must have at least one IP address.
     * It can be IPv4 or IPv6. */
    if (tor_addr_family(&cell->orport_ipv6.addr) == AF_UNSPEC) {
    if (!tor_addr_port_is_valid_ap(&cell->orport_ipv6, 0)) {
      return -1;
    }
  }