aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2004-03-31 05:10:34 +0000
committerRoger Dingledine <arma@torproject.org>2004-03-31 05:10:34 +0000
commitb4a61d1ab15174470a2ff8737125848d4d3abf4a (patch)
tree0e234dbc82080de6bb0c120f15a0fe4c53411134
parent87dbd36a3ce153ef10676bf63a126e58573afd93 (diff)
downloadtor-b4a61d1ab15174470a2ff8737125848d4d3abf4a.tar
tor-b4a61d1ab15174470a2ff8737125848d4d3abf4a.tar.gz
better way: always nul-terminate. then sometimes use it, sometimes not.
svn:r1408
-rw-r--r--src/or/buffers.c5
-rw-r--r--src/or/directory.c3
2 files changed, 2 insertions, 6 deletions
diff --git a/src/or/buffers.c b/src/or/buffers.c
index 5e4c7d50c..aac329462 100644
--- a/src/or/buffers.c
+++ b/src/or/buffers.c
@@ -332,8 +332,7 @@ int fetch_from_buf(char *string, int string_len, buf_t *buf) {
* the body are present, or b) there's no Content-Length field and
* all headers are present, then:
* strdup headers into *headers_out, and nul-terminate it.
- * memdup body into *body_out, and malloc one byte more than
- * necessary, in case the caller wants to nul-terminate it.
+ * memdup body into *body_out, and nul-terminate it.
* Then remove them from buf, and return 1.
*
* If headers or body is NULL, discard that part of the buf.
@@ -395,7 +394,7 @@ int fetch_from_buf_http(buf_t *buf,
*body_used = bodylen;
*body_out = tor_malloc(bodylen+1);
memcpy(*body_out,buf->mem+headerlen,bodylen);
- /* don't null terminate it */
+ (*body_out)[bodylen] = 0; /* null terminate it */
}
buf_remove_from_front(buf, headerlen+bodylen);
return 1;
diff --git a/src/or/directory.c b/src/or/directory.c
index ff565369c..b83351beb 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -211,8 +211,6 @@ int connection_dir_process_inbuf(connection_t *conn) {
if(conn->purpose == DIR_PURPOSE_FETCH_DIR) {
/* fetch/process the directory to learn about new routers. */
- directory[dir_len] = 0; /* null terminate it, we can do this
- because fetch_from_buf_http made space */
log_fn(LOG_INFO,"Received directory (size %d):\n%s", dir_len, directory);
if(status_code == 503 || dir_len == 0) {
log_fn(LOG_INFO,"Empty directory. Ignoring.");
@@ -374,7 +372,6 @@ static int directory_handle_command_post(connection_t *conn,
}
if(!strcmp(url,"/")) { /* server descriptor post */
- body[body_len] = 0; /* dirserv_add_descriptor expects nul-terminated */
cp = body;
switch(dirserv_add_descriptor(&cp)) {
case -1: