[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor/master] Actually, bail out of routerstatus_format_entry() if fmt_addr32() fails



commit 38cbfda119558877aeb4fa81578f0d0f6962d03e
Author: rl1987 <rl1987@xxxxxxxxxxxxxxxx>
Date:   Wed Apr 8 19:54:47 2020 +0300

    Actually, bail out of routerstatus_format_entry() if fmt_addr32() fails
---
 src/feature/nodelist/fmt_routerstatus.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/feature/nodelist/fmt_routerstatus.c b/src/feature/nodelist/fmt_routerstatus.c
index 6cecbf4df..ca4a31263 100644
--- a/src/feature/nodelist/fmt_routerstatus.c
+++ b/src/feature/nodelist/fmt_routerstatus.c
@@ -54,22 +54,23 @@ routerstatus_format_entry(const routerstatus_t *rs, const char *version,
   smartlist_t *chunks = smartlist_new();
 
   const char *ip_str = fmt_addr32(rs->addr);
+  if (ip_str[0] == '\0')
+    goto err;
 
   format_iso_time(published, rs->published_on);
   digest_to_base64(identity64, rs->identity_digest);
   digest_to_base64(digest64, rs->descriptor_digest);
 
-  if (ip_str[0])
-    smartlist_add_asprintf(chunks,
-                     "r %s %s %s%s%s %s %d %d\n",
-                     rs->nickname,
-                     identity64,
-                     (format==NS_V3_CONSENSUS_MICRODESC)?"":digest64,
-                     (format==NS_V3_CONSENSUS_MICRODESC)?"":" ",
-                     published,
-                     ip_str,
-                     (int)rs->or_port,
-                     (int)rs->dir_port);
+  smartlist_add_asprintf(chunks,
+                   "r %s %s %s%s%s %s %d %d\n",
+                   rs->nickname,
+                   identity64,
+                   (format==NS_V3_CONSENSUS_MICRODESC)?"":digest64,
+                   (format==NS_V3_CONSENSUS_MICRODESC)?"":" ",
+                   published,
+                   ip_str,
+                   (int)rs->or_port,
+                   (int)rs->dir_port);
 
   /* TODO: Maybe we want to pass in what we need to build the rest of
    * this here, instead of in the caller. Then we could use the



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits