Apparent 311 fix: apparently passing Z_FINISH an empty string is problematic.

svn:r6702
This commit is contained in:
Nick Mathewson 2006-06-29 11:19:52 +00:00
parent 05eff35ac6
commit 475eb5d6fe

View File

@ -1827,10 +1827,15 @@ connection_dirserv_add_servers_to_outbuf(connection_t *conn)
continue;
body = signed_descriptor_get_body(sd);
if (conn->zlib_state) {
int last = ! smartlist_len(conn->fingerprint_stack);
connection_write_to_buf_zlib(
conn, conn->zlib_state,
body, sd->signed_descriptor_len,
0);
last);
if (last) {
tor_zlib_free(conn->zlib_state);
conn->zlib_state = NULL;
}
} else {
connection_write_to_buf(body,
sd->signed_descriptor_len,
@ -1840,7 +1845,7 @@ connection_dirserv_add_servers_to_outbuf(connection_t *conn)
if (!smartlist_len(conn->fingerprint_stack)) {
/* We just wrote the last one; finish up. */
connection_dirserv_finish_spooling(conn);
conn->dir_spool_src = DIR_SPOOL_NONE;
smartlist_free(conn->fingerprint_stack);
conn->fingerprint_stack = NULL;
}