]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Write consensus files in binary mode
authorNick Mathewson <nickm@torproject.org>
Tue, 29 Jan 2019 15:18:41 +0000 (16:18 +0100)
committerNick Mathewson <nickm@torproject.org>
Tue, 29 Jan 2019 15:18:41 +0000 (16:18 +0100)
This will help us out on windows now that we mmap files.  Fixes part
of ticket 28614.

changes/ticket28614 [new file with mode: 0644]
src/feature/nodelist/networkstatus.c

diff --git a/changes/ticket28614 b/changes/ticket28614
new file mode 100644 (file)
index 0000000..c022baf
--- /dev/null
@@ -0,0 +1,4 @@
+  o Major bugfixes (windows, startup):
+    - When writing a consensus file to disk, always write in
+      "binary" mode so that we can safely map it into memory later.
+      Fixes part bug 28614; bugfix on 0.4.0.1-alpha.
index d9659b67c074ce21139db780fbbbd73466994832..64169f6a4b4d0362044090b65d7a0f41b7ad701e 100644 (file)
@@ -1991,7 +1991,7 @@ networkstatus_set_current_consensus(const char *consensus,
         waiting->set_at = now;
         waiting->dl_failed = 0;
         if (!from_cache) {
-          write_bytes_to_file(unverified_fname, consensus, consensus_len, 0);
+          write_bytes_to_file(unverified_fname, consensus, consensus_len, 1);
         }
         if (dl_certs)
           authority_certs_fetch_missing(c, now, source_dir);
@@ -2142,7 +2142,7 @@ networkstatus_set_current_consensus(const char *consensus,
   }
 
   if (!from_cache) {
-    write_bytes_to_file(consensus_fname, consensus, consensus_len, 0);
+    write_bytes_to_file(consensus_fname, consensus, consensus_len, 1);
   }
 
   warn_early_consensus(c, flavor, now);