From b5e84e24aeb4fa2cb3d238b037fbc1157f4c48fa Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Sun, 16 Nov 2003 17:15:40 +0000 Subject: [PATCH] dump exit policies correctly to descriptor svn:r815 --- src/or/routers.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/or/routers.c b/src/or/routers.c index a7069f12e1..00efba68e3 100644 --- a/src/or/routers.c +++ b/src/or/routers.c @@ -1198,6 +1198,10 @@ static void get_platform_str(char *platform, int len) return; } +/* XXX need to audit this thing and count fenceposts. maybe + * refactor so we don't have to keep asking if we're + * near the end of maxlen? + */ #define DEBUG_ROUTER_DUMP_ROUTER_TO_STRING int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router, crypto_pk_env_t *ident_key) { @@ -1251,7 +1255,7 @@ int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router, "onion-key\n%s" "link-key\n%s" "signing-key\n%s", - router->nickname, + router->nickname, router->address, router->or_port, router->socks_port, @@ -1294,11 +1298,15 @@ int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router, return -1; written += result; } else { - if (written > maxlen-3) + if (written > maxlen-4) return -1; strcat(s+written, ":*"); } - } + if(written > maxlen-1) + return -1; + strcat(s+written, "\n"); + written++; + } /* end for */ if (written > maxlen-256) /* Not enough room for signature. */ return -1;