[tor-commits] [tor/master] core/or: Check extends for zero addresses and ports

nickm at torproject.org nickm at torproject.org
Wed Apr 29 23:23:42 UTC 2020


commit 587a7fbcf62447c7ade05c57220f1bfe2f3acdc1
Author: teor <teor at torproject.org>
Date:   Tue Apr 14 15:53:17 2020 +1000

    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.
---
 changes/bug33900    | 3 +++
 src/core/or/onion.c | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/changes/bug33900 b/changes/bug33900
new file mode 100644
index 000000000..c1649d228
--- /dev/null
+++ b/changes/bug33900
@@ -0,0 +1,3 @@
+  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.
diff --git a/src/core/or/onion.c b/src/core/or/onion.c
index 543d9f3e4..d73f981d2 100644
--- a/src/core/or/onion.c
+++ b/src/core/or/onion.c
@@ -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;
     }
   }





More information about the tor-commits mailing list