From: Nick Mathewson Date: Fri, 19 Nov 2010 21:13:11 +0000 (-0500) Subject: Add comments to some of the bug2183 fix code X-Git-Tag: tor-0.2.2.19-alpha~5^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e88486bc9d2f4fd6982a00f5ccf498a4f809cfd2;p=thirdparty%2Ftor.git Add comments to some of the bug2183 fix code --- diff --git a/src/or/router.c b/src/or/router.c index 38f0a2f47d..9b80247f19 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -2044,7 +2044,12 @@ extrainfo_dump_to_string(char **s_out, extrainfo_t *extrainfo, s = smartlist_join_strings(chunks, "", 0, NULL); while (strlen(s) > MAX_EXTRAINFO_UPLOAD_SIZE - DIROBJ_MAX_SIG_LEN) { + /* So long as there are at least two chunks (one for the initial + * extra-info line and one for the router-signature), we can keep removing + * things. */ if (smartlist_len(chunks) > 2) { + /* We remove the next-to-last element (remember, len-1 is the last + element), since we need to keep the router-signature element. */ int idx = smartlist_len(chunks) - 2; char *e = smartlist_get(chunks, idx); smartlist_del_keeporder(chunks, idx);