Commit f021df58 authored by Robert Ransom's avatar Robert Ransom Committed by Nick Mathewson
Browse files

Specify text or binary mode in every start_writing_to_stdio_file call

parent 866a2828
Loading
Loading
Loading
Loading

changes/bug3607

0 → 100644
+15 −0
Original line number Diff line number Diff line
  o Minor bugfixes:

    - Write several files (currently, buffer-stats, dirreq-stats, and
      entry-stats on relays that collect those statistics, client_keys
      and hostname files for hidden services that use authentication,
      and (in the tor-gencert utility) newly generated identity and
      signing keys) in text mode, on OSes that distinguish text mode
      from binary mode (i.e. on Windows).  Previously, we wouldn't
      specify text mode or binary mode, leading to an assertion
      failure.  Fixes bug 3607.  Bugfix on 0.2.1.1-alpha (when the
      DirRecordUsageByCountry option which would have triggered the
      assertion failure was added), although this assertion failure
      would have occurred in tor-gencert on Windows in 0.2.0.1-alpha.

+2 −2
Original line number Diff line number Diff line
@@ -976,7 +976,7 @@ geoip_dirreq_stats_write(time_t now)
  data_v2 = geoip_get_client_history(GEOIP_CLIENT_NETWORKSTATUS_V2);
  data_v3 = geoip_get_client_history(GEOIP_CLIENT_NETWORKSTATUS);
  format_iso_time(written, now);
  out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND,
  out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND | O_TEXT,
                                    0600, &open_file);
  if (!out)
    goto done;
@@ -1309,7 +1309,7 @@ geoip_entry_stats_write(time_t now)
  filename = get_datadir_fname2("stats", "entry-stats");
  data = geoip_get_client_history(GEOIP_CLIENT_CONNECT);
  format_iso_time(written, now);
  out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND,
  out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND | O_TEXT,
                                    0600, &open_file);
  if (!out)
    goto done;
+4 −2
Original line number Diff line number Diff line
@@ -635,13 +635,15 @@ rend_service_load_keys(void)
      }

      /* Prepare client_keys and hostname files. */
      if (!(cfile = start_writing_to_stdio_file(cfname, OPEN_FLAGS_REPLACE,
      if (!(cfile = start_writing_to_stdio_file(cfname,
                                                OPEN_FLAGS_REPLACE | O_TEXT,
                                                0600, &open_cfile))) {
        log_warn(LD_CONFIG, "Could not open client_keys file %s",
                 escaped(cfname));
        goto err;
      }
      if (!(hfile = start_writing_to_stdio_file(fname, OPEN_FLAGS_REPLACE,
      if (!(hfile = start_writing_to_stdio_file(fname,
                                                OPEN_FLAGS_REPLACE | O_TEXT,
                                                0600, &open_hfile))) {
        log_warn(LD_CONFIG, "Could not open hostname file %s", escaped(fname));
        goto err;
+1 −1
Original line number Diff line number Diff line
@@ -2500,7 +2500,7 @@ rep_hist_buffer_stats_write(time_t now)
  if (check_private_dir(statsdir, CPD_CREATE, get_options()->User) < 0)
    goto done;
  filename = get_datadir_fname2("stats", "buffer-stats");
  out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND,
  out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND | O_TEXT,
                                    0600, &open_file);
  if (!out)
    goto done;
+2 −2
Original line number Diff line number Diff line
@@ -264,7 +264,7 @@ load_identity_key(void)
    }

    if (!(f = start_writing_to_stdio_file(identity_key_file,
                                          OPEN_FLAGS_REPLACE, 0400,
                                          OPEN_FLAGS_REPLACE | O_TEXT, 0400,
                                          &open_file)))
      return 1;

@@ -349,7 +349,7 @@ generate_signing_key(void)
  }

  if (!(f = start_writing_to_stdio_file(signing_key_file,
                                        OPEN_FLAGS_REPLACE, 0600,
                                        OPEN_FLAGS_REPLACE | O_TEXT, 0600,
                                        &open_file)))
    return 1;