]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
handle_control_getinfo() was counting msg_len itself,
authorRoger Dingledine <arma@torproject.org>
Tue, 22 Mar 2005 05:41:05 +0000 (05:41 +0000)
committerRoger Dingledine <arma@torproject.org>
Tue, 22 Mar 2005 05:41:05 +0000 (05:41 +0000)
when that's actually smartlist_join_strings2()'s job.

svn:r3806

src/or/control.c

index ced46710de950704c42b8fd65fefc0d0a2166760..45c84d1b994e0472c1e5d4a0b9b8341da46b1c2e 100644 (file)
@@ -589,7 +589,6 @@ handle_control_getinfo(connection_t *conn, uint32_t len, const char *body)
   smartlist_split_string(questions, body, "\n",
                          SPLIT_SKIP_SPACE|SPLIT_IGNORE_BLANK, 0);
   answers = smartlist_create();
-  msg_len = 0;
   SMARTLIST_FOREACH(questions, const char *, q,
   {
     if (handle_getinfo_helper(q, &ans) < 0) {
@@ -601,12 +600,12 @@ handle_control_getinfo(connection_t *conn, uint32_t len, const char *body)
     }
     smartlist_add(answers, tor_strdup(q));
     smartlist_add(answers, ans);
-    msg_len += 2 + strlen(ans) + strlen(q);
   });
 
   msg = smartlist_join_strings2(answers, "\0", 1, 1, &msg_len);
+  tor_assert(msg_len > 0); /* it will at least be terminated */
   send_control_message(conn, CONTROL_CMD_INFOVALUE,
-                       msg_len, msg_len?msg:NULL);
+                       msg_len, msg);
 
  done:
   if (answers) SMARTLIST_FOREACH(answers, char *, cp, tor_free(cp));