diff --git a/src/common/address.c b/src/common/address.c
index 3f00c1e6176a90a2527cf137316efd7ac7713f6b..7a2ce6eef8e4cc810a78f82a959a5ea664be6267 100644
--- a/src/common/address.c
+++ b/src/common/address.c
@@ -181,6 +181,14 @@ tor_addr_make_unspec(tor_addr_t *a)
   a->family = AF_UNSPEC;
 }
 
+/** DOCDOC */
+void
+tor_addr_make_null(tor_addr_t *a, sa_family_t family)
+{
+  memset(a, 0, sizeof(*a));
+  a->family = family;
+}
+
 /** Similar behavior to Unix gethostbyname: resolve <b>name</b>, and set
  * *<b>addr</b> to the proper IP address and family. The <b>family</b>
  * argument (which must be AF_INET, AF_INET6, or AF_UNSPEC) declares a
diff --git a/src/common/address.h b/src/common/address.h
index 6bf94610c8c3069664d7c00c6b81bb1eb5866c5e..9c0df6c24f38e933a6d3e4ab09c1f9a7906f5711 100644
--- a/src/common/address.h
+++ b/src/common/address.h
@@ -55,6 +55,7 @@ socklen_t tor_addr_to_sockaddr(const tor_addr_t *a, uint16_t port,
 int tor_addr_from_sockaddr(tor_addr_t *a, const struct sockaddr *sa,
                            uint16_t *port_out);
 void tor_addr_make_unspec(tor_addr_t *a);
+void tor_addr_make_null(tor_addr_t *a, sa_family_t family);
 char *tor_sockaddr_to_str(const struct sockaddr *sa);
 
 /** Return an in6_addr* equivalent to <b>a</b>, or NULL if <b>a</b> is not