[tor-commits] [tor/master] net: Make all address bytes functions take uint8_t *

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


commit cd7e2fc210349615c8e9cdb879f98cb0c9cac57b
Author: teor <teor at torproject.org>
Date:   Thu Apr 30 06:17:18 2020 +1000

    net: Make all address bytes functions take uint8_t *
    
    Part of 33817.
---
 src/core/or/channeltls.c        |  2 +-
 src/core/or/connection_edge.c   |  2 +-
 src/core/or/onion.c             |  6 +++---
 src/core/or/policies.c          |  4 ++--
 src/core/or/relay.c             |  8 ++++----
 src/core/proto/proto_socks.c    |  5 ++---
 src/feature/client/addressmap.c |  2 +-
 src/lib/net/address.c           | 17 +++++++++--------
 src/lib/net/address.h           |  8 ++++----
 src/test/test_address.c         |  4 ++--
 src/tools/tor-resolve.c         |  2 +-
 11 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/src/core/or/channeltls.c b/src/core/or/channeltls.c
index b424d02a5..be941c176 100644
--- a/src/core/or/channeltls.c
+++ b/src/core/or/channeltls.c
@@ -1669,7 +1669,7 @@ tor_addr_from_netinfo_addr(tor_addr_t *tor_addr,
   } else if (type == NETINFO_ADDR_TYPE_IPV6 && len == 16) {
     const uint8_t *ipv6_bytes = netinfo_addr_getconstarray_addr_ipv6(
                                   netinfo_addr);
-    tor_addr_from_ipv6_bytes(tor_addr, (const char *)ipv6_bytes);
+    tor_addr_from_ipv6_bytes(tor_addr, ipv6_bytes);
   } else {
     log_fn(LOG_PROTOCOL_WARN, LD_OR, "Cannot read address from NETINFO "
                                      "- wrong type/length.");
diff --git a/src/core/or/connection_edge.c b/src/core/or/connection_edge.c
index 23c6e230c..803bd82fc 100644
--- a/src/core/or/connection_edge.c
+++ b/src/core/or/connection_edge.c
@@ -3531,7 +3531,7 @@ connection_ap_handshake_socks_resolved,(entry_connection_t *conn,
       }
     } else if (answer_type == RESOLVED_TYPE_IPV6 && answer_len == 16) {
       tor_addr_t a;
-      tor_addr_from_ipv6_bytes(&a, (char*)answer);
+      tor_addr_from_ipv6_bytes(&a, answer);
       if (! tor_addr_is_null(&a)) {
         client_dns_set_addressmap(conn,
                                   conn->socks_request->address, &a,
diff --git a/src/core/or/onion.c b/src/core/or/onion.c
index 923f850f2..7b8f3c61f 100644
--- a/src/core/or/onion.c
+++ b/src/core/or/onion.c
@@ -353,7 +353,7 @@ extend_cell_from_extend2_cell_body(extend_cell_t *cell_out,
           continue;
         found_ipv6 = 1;
         tor_addr_from_ipv6_bytes(&cell_out->orport_ipv6.addr,
-                                 (const char *)ls->un_ipv6_addr);
+                                 ls->un_ipv6_addr);
         cell_out->orport_ipv6.port = ls->un_ipv6_port;
         break;
       case LS_LEGACY_ID:
@@ -674,8 +674,8 @@ extend_cell_format(uint8_t *command_out, uint16_t *len_out,
         extend2_cell_body_add_ls(cell, ls);
         ls->ls_type = LS_IPV6;
         ls->ls_len = 18;
-        tor_addr_copy_ipv6_bytes((char *)ls->un_ipv6_addr,
-                                &cell_in->orport_ipv6.addr);
+        tor_addr_copy_ipv6_bytes(ls->un_ipv6_addr,
+                                 &cell_in->orport_ipv6.addr);
         ls->un_ipv6_port = cell_in->orport_ipv6.port;
       }
       cell->n_spec = n_specifiers;
diff --git a/src/core/or/policies.c b/src/core/or/policies.c
index dd4feaadf..ea803f393 100644
--- a/src/core/or/policies.c
+++ b/src/core/or/policies.c
@@ -167,7 +167,7 @@ policy_expand_unspec(smartlist_t **policy)
       }
       tor_addr_from_ipv4h(&newpolicy_ipv4.addr, 0);
       tor_addr_from_ipv6_bytes(&newpolicy_ipv6.addr,
-                               "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
+          (const uint8_t *)"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
       smartlist_add(tmp, addr_policy_get_canonical_entry(&newpolicy_ipv4));
       smartlist_add(tmp, addr_policy_get_canonical_entry(&newpolicy_ipv6));
       addr_policy_free(p);
@@ -1005,7 +1005,7 @@ fascist_firewall_choose_address_ls(const smartlist_t *lspecs,
        * direct connection. */
       if (have_v6) continue;
       tor_addr_from_ipv6_bytes(&addr_v6,
-          (const char *) link_specifier_getconstarray_un_ipv6_addr(ls));
+          link_specifier_getconstarray_un_ipv6_addr(ls));
       port_v6 = link_specifier_get_un_ipv6_port(ls);
       have_v6 = 1;
       break;
diff --git a/src/core/or/relay.c b/src/core/or/relay.c
index 00bbf77b9..b831af0ac 100644
--- a/src/core/or/relay.c
+++ b/src/core/or/relay.c
@@ -867,7 +867,7 @@ connection_ap_process_end_not_open(
               ttl = (int)ntohl(get_uint32(cell->payload+RELAY_HEADER_SIZE+5));
           } else if (rh->length == 17 || rh->length == 21) {
             tor_addr_from_ipv6_bytes(&addr,
-                                (char*)(cell->payload+RELAY_HEADER_SIZE+1));
+                                     (cell->payload+RELAY_HEADER_SIZE+1));
             if (rh->length == 21)
               ttl = (int)ntohl(get_uint32(cell->payload+RELAY_HEADER_SIZE+17));
           }
@@ -1092,7 +1092,7 @@ connected_cell_parse(const relay_header_t *rh, const cell_t *cell,
       return -1;
     if (get_uint8(payload + 4) != 6)
       return -1;
-    tor_addr_from_ipv6_bytes(addr_out, (char*)(payload + 5));
+    tor_addr_from_ipv6_bytes(addr_out, (payload + 5));
     bytes = ntohl(get_uint32(payload + 21));
     if (bytes <= INT32_MAX)
       *ttl_out = (int) bytes;
@@ -1165,7 +1165,7 @@ resolved_cell_parse(const cell_t *cell, const relay_header_t *rh,
       if (answer_len != 16)
         goto err;
       addr = tor_malloc_zero(sizeof(*addr));
-      tor_addr_from_ipv6_bytes(&addr->addr, (const char*) cp);
+      tor_addr_from_ipv6_bytes(&addr->addr, cp);
       cp += 16;
       addr->ttl = ntohl(get_uint32(cp));
       cp += 4;
@@ -3217,7 +3217,7 @@ decode_address_from_payload(tor_addr_t *addr_out, const uint8_t *payload,
   case RESOLVED_TYPE_IPV6:
     if (payload[1] != 16)
       return NULL;
-    tor_addr_from_ipv6_bytes(addr_out, (char*)(payload+2));
+    tor_addr_from_ipv6_bytes(addr_out, (payload+2));
     break;
   default:
     tor_addr_make_unspec(addr_out);
diff --git a/src/core/proto/proto_socks.c b/src/core/proto/proto_socks.c
index 6fd08b227..c7d2af3d9 100644
--- a/src/core/proto/proto_socks.c
+++ b/src/core/proto/proto_socks.c
@@ -587,9 +587,8 @@ parse_socks5_client_request(const uint8_t *raw_data, socks_request_t *req,
       strlcpy(req->address, hostname, sizeof(req->address));
     } break;
     case 4: {
-      const char *ipv6 =
-        (const char *)socks5_client_request_getarray_dest_addr_ipv6(
-          trunnel_req);
+      const uint8_t *ipv6 =
+          socks5_client_request_getarray_dest_addr_ipv6(trunnel_req);
       tor_addr_from_ipv6_bytes(&destaddr, ipv6);
 
       tor_addr_to_str(req->address, &destaddr, sizeof(req->address), 1);
diff --git a/src/feature/client/addressmap.c b/src/feature/client/addressmap.c
index cc97166f3..9ad2d7f93 100644
--- a/src/feature/client/addressmap.c
+++ b/src/feature/client/addressmap.c
@@ -902,7 +902,7 @@ get_random_virtual_addr(const virtual_addr_conf_t *conf, tor_addr_t *addr_out)
   }
 
   if (ipv6)
-    tor_addr_from_ipv6_bytes(addr_out, (char*) bytes);
+    tor_addr_from_ipv6_bytes(addr_out, bytes);
   else
     tor_addr_from_ipv4n(addr_out, get_uint32(bytes));
 
diff --git a/src/lib/net/address.c b/src/lib/net/address.c
index af0e58fa4..4193053ee 100644
--- a/src/lib/net/address.c
+++ b/src/lib/net/address.c
@@ -608,7 +608,8 @@ tor_addr_parse_mask_ports(const char *s,
         family = AF_INET;
         tor_addr_from_ipv4h(addr_out, 0);
       } else if (flags & TAPMP_STAR_IPV6_ONLY) {
-        static char nil_bytes[16] = { [0]=0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 };
+        static uint8_t nil_bytes[16] =
+          { [0]=0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 };
         family = AF_INET6;
         tor_addr_from_ipv6_bytes(addr_out, nil_bytes);
       } else {
@@ -629,7 +630,7 @@ tor_addr_parse_mask_ports(const char *s,
     tor_addr_from_ipv4h(addr_out, 0);
     any_flag = 1;
   } else if (!strcmp(address, "*6") && (flags & TAPMP_EXTENDED_STAR)) {
-    static char nil_bytes[16] = { [0]=0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 };
+    static uint8_t nil_bytes[16] = { [0]=0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 };
     family = AF_INET6;
     tor_addr_from_ipv6_bytes(addr_out, nil_bytes);
     any_flag = 1;
@@ -887,7 +888,7 @@ tor_addr_from_ipv4n(tor_addr_t *dest, uint32_t v4addr)
 /** Set <b>dest</b> to equal the IPv6 address in the 16 bytes at
  * <b>ipv6_bytes</b>. */
 void
-tor_addr_from_ipv6_bytes(tor_addr_t *dest, const char *ipv6_bytes)
+tor_addr_from_ipv6_bytes(tor_addr_t *dest, const uint8_t *ipv6_bytes)
 {
   tor_assert(dest);
   tor_assert(ipv6_bytes);
@@ -900,14 +901,14 @@ tor_addr_from_ipv6_bytes(tor_addr_t *dest, const char *ipv6_bytes)
 void
 tor_addr_from_in6(tor_addr_t *dest, const struct in6_addr *in6)
 {
-  tor_addr_from_ipv6_bytes(dest, (const char*)in6->s6_addr);
+  tor_addr_from_ipv6_bytes(dest, in6->s6_addr);
 }
 
 /** Set the 16 bytes at <b>dest</b> to equal the IPv6 address <b>src</b>.
  * <b>src</b> must be an IPv6 address, if it is not, log a warning, and clear
  * <b>dest</b>. */
 void
-tor_addr_copy_ipv6_bytes(char *dest, const tor_addr_t *src)
+tor_addr_copy_ipv6_bytes(uint8_t *dest, const tor_addr_t *src)
 {
   tor_assert(dest);
   tor_assert(src);
@@ -1463,10 +1464,10 @@ ifconf_free_ifc_buf(struct ifconf *ifc)
  * into smartlist of <b>tor_addr_t</b> structures.
  */
 STATIC smartlist_t *
-ifreq_to_smartlist(char *buf, size_t buflen)
+ifreq_to_smartlist(const uint8_t *buf, size_t buflen)
 {
   smartlist_t *result = smartlist_new();
-  char *end = buf + buflen;
+  const uint8_t *end = buf + buflen;
 
   /* These acrobatics are due to alignment issues which trigger
    * undefined behaviour traps on OSX. */
@@ -1540,7 +1541,7 @@ get_interface_addresses_ioctl(int severity, sa_family_t family)
     /* Ensure we have least IFREQ_SIZE bytes unused at the end. Otherwise, we
      * don't know if we got everything during ioctl. */
   } while (mult * IFREQ_SIZE - ifc.ifc_len <= IFREQ_SIZE);
-  result = ifreq_to_smartlist(ifc.ifc_buf, ifc.ifc_len);
+  result = ifreq_to_smartlist((const uint8_t *)ifc.ifc_buf, ifc.ifc_len);
 
  done:
   if (fd >= 0)
diff --git a/src/lib/net/address.h b/src/lib/net/address.h
index 89b1cae32..b5754087c 100644
--- a/src/lib/net/address.h
+++ b/src/lib/net/address.h
@@ -304,12 +304,12 @@ void tor_addr_from_ipv4n(tor_addr_t *dest, uint32_t v4addr);
  * order. */
 #define tor_addr_from_ipv4h(dest, v4addr)       \
   tor_addr_from_ipv4n((dest), htonl(v4addr))
-void tor_addr_from_ipv6_bytes(tor_addr_t *dest, const char *bytes);
+void tor_addr_from_ipv6_bytes(tor_addr_t *dest, const uint8_t *bytes);
 /** Set <b>dest</b> to the IPv4 address incoded in <b>in</b>. */
 #define tor_addr_from_in(dest, in) \
   tor_addr_from_ipv4n((dest), (in)->s_addr);
 void tor_addr_from_in6(tor_addr_t *dest, const struct in6_addr *in6);
-void tor_addr_copy_ipv6_bytes(char *dest, const tor_addr_t *src);
+void tor_addr_copy_ipv6_bytes(uint8_t *dest, const tor_addr_t *src);
 
 int tor_addr_is_null(const tor_addr_t *addr);
 int tor_addr_is_loopback(const tor_addr_t *addr);
@@ -400,8 +400,8 @@ STATIC struct smartlist_t *get_interface_addresses_win32(int severity,
 #endif /* defined(HAVE_IP_ADAPTER_TO_SMARTLIST) */
 
 #ifdef HAVE_IFCONF_TO_SMARTLIST
-STATIC struct smartlist_t *ifreq_to_smartlist(char *ifr,
-                                       size_t buflen);
+STATIC struct smartlist_t *ifreq_to_smartlist(const uint8_t *ifr,
+                                              size_t buflen);
 STATIC struct smartlist_t *get_interface_addresses_ioctl(int severity,
                                                   sa_family_t family);
 #endif /* defined(HAVE_IFCONF_TO_SMARTLIST) */
diff --git a/src/test/test_address.c b/src/test/test_address.c
index e068c99d9..4cedbda34 100644
--- a/src/test/test_address.c
+++ b/src/test/test_address.c
@@ -460,7 +460,7 @@ test_address_ifreq_to_smartlist(void *arg)
   ifc->ifc_len = sizeof(struct ifreq);
   ifc->ifc_ifcu.ifcu_req = ifr;
 
-  results = ifreq_to_smartlist(ifc->ifc_buf,ifc->ifc_len);
+  results = ifreq_to_smartlist((const uint8_t *)ifc->ifc_buf,ifc->ifc_len);
   tt_int_op(smartlist_len(results),OP_EQ,1);
 
   tor_addr = smartlist_get(results, 0);
@@ -483,7 +483,7 @@ test_address_ifreq_to_smartlist(void *arg)
   SMARTLIST_FOREACH(results, tor_addr_t *, t, tor_free(t));
   smartlist_free(results);
 
-  results = ifreq_to_smartlist(ifc->ifc_buf,ifc->ifc_len);
+  results = ifreq_to_smartlist((const uint8_t *)ifc->ifc_buf,ifc->ifc_len);
   tt_int_op(smartlist_len(results),OP_EQ,2);
 
   tor_addr = smartlist_get(results, 0);
diff --git a/src/tools/tor-resolve.c b/src/tools/tor-resolve.c
index d369445df..e6d6bddcd 100644
--- a/src/tools/tor-resolve.c
+++ b/src/tools/tor-resolve.c
@@ -509,7 +509,7 @@ do_resolve(const char *hostname,
     } else if (atype == SOCKS5_ATYPE_IPV6) {
       /* IPv6 address */
       tor_addr_from_ipv6_bytes(result_addr,
-        (const char *)socks5_server_reply_getarray_bind_addr_ipv6(reply));
+        socks5_server_reply_getarray_bind_addr_ipv6(reply));
     } else if (atype == SOCKS5_ATYPE_HOSTNAME) {
       /* Domain name */
       domainname_t *dn =





More information about the tor-commits mailing list