[tor-bugs] #23908 [Core Tor/Tor]: write_http_status_line(): Bug: status line too long. (on Tor 0.3.1.7 )

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Oct 20 01:50:51 UTC 2017


#23908: write_http_status_line(): Bug: status line too long. (on Tor 0.3.1.7 )
--------------------------+------------------------------------
 Reporter:  micah         |          Owner:  (none)
     Type:  defect        |         Status:  new
 Priority:  High          |      Milestone:  Tor: 0.3.1.x-final
Component:  Core Tor/Tor  |        Version:
 Severity:  Normal        |     Resolution:
 Keywords:                |  Actual Points:
Parent ID:                |         Points:
 Reviewer:                |        Sponsor:
--------------------------+------------------------------------

Comment (by arma):

 Here is a manual backport of commit 771fb7e7:
 {{{
 diff --git a/src/or/directory.c b/src/or/directory.c
 index 45fbd1d..bef65d3 100644
 --- a/src/or/directory.c
 +++ b/src/or/directory.c
 @@ -3282,14 +3282,12 @@ static void
  write_http_status_line(dir_connection_t *conn, int status,
                         const char *reason_phrase)
  {
 -  char buf[256];
 -  if (tor_snprintf(buf, sizeof(buf), "HTTP/1.0 %d %s\r\n\r\n",
 -      status, reason_phrase ? reason_phrase : "OK") < 0) {
 -    log_warn(LD_BUG,"status line too long.");
 -    return;
 -  }
 +  char *buf = NULL;
 +  tor_asprintf(&buf, "HTTP/1.0 %d %s\r\n\r\n",
 +               status, reason_phrase ? reason_phrase : "OK");
    log_debug(LD_DIRSERV,"Wrote status 'HTTP/1.0 %d %s'", status,
 reason_phrase);
    connection_write_to_buf(buf, strlen(buf), TO_CONN(conn));
 +  tor_free(buf);
  }

  /** Write the header for an HTTP/1.0 response onto <b>conn</b>-\>outbuf,
 }}}

 catalyst also suggests "Make the msg shorter, like make it a link or
 something" as a fine fix.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/23908#comment:7>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list