Commit 4f5a1166 authored by George Kadianakis's avatar George Kadianakis
Browse files

Merge remote-tracking branch 'tor-gitlab/mr/187' into master

parents 474369e3 3f442987
Loading
Loading
Loading
Loading

changes/ticket18888

0 → 100644
+3 −0
Original line number Diff line number Diff line
  o Minor features (safety):
    - Log a warning at startup if Tor is built with compile-time options that
      are likely to make it less stable or reliable. Closes ticket 18888.
+2 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
# ADD_C_FILE: INSERT SOURCES HERE.
LIBTOR_APP_A_SOURCES += 			\
	src/app/main/main.c			\
	src/app/main/risky_options.c		\
	src/app/main/shutdown.c			\
	src/app/main/subsystem_list.c		\
	src/app/main/subsysmgr.c
@@ -10,6 +11,7 @@ LIBTOR_APP_A_SOURCES += \
noinst_HEADERS +=					\
	src/app/main/main.h				\
	src/app/main/ntmain.h				\
	src/app/main/risky_options.h			\
	src/app/main/shutdown.h 			\
	src/app/main/subsysmgr.h

+11 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include "app/config/quiet_level.h"
#include "app/main/main.h"
#include "app/main/ntmain.h"
#include "app/main/risky_options.h"
#include "app/main/shutdown.h"
#include "app/main/subsysmgr.h"
#include "core/mainloop/connection.h"
@@ -539,6 +540,7 @@ tor_init(int argc, char *argv[])
{
  char progname[256];
  quiet_level_t quiet = QUIET_NONE;
  bool running_tor = false;

  time_of_process_start = time(NULL);
  tor_init_connection_lists();
@@ -562,8 +564,10 @@ tor_init(int argc, char *argv[])
       whether we log anything at all to stdout. */
    parsed_cmdline_t *cmdline;
    cmdline = config_parse_commandline(argc, argv, 1);
    if (cmdline)
    if (cmdline) {
      quiet = cmdline->quiet_level;
      running_tor = (cmdline->command == CMD_RUN_TOR);
    }
    parsed_cmdline_free(cmdline);
  }

@@ -599,6 +603,12 @@ tor_init(int argc, char *argv[])
      log_notice(LD_GENERAL, "This version is not a stable Tor release. "
                 "Expect more bugs than usual.");

    if (strlen(risky_option_list) && running_tor) {
      log_warn(LD_GENERAL, "This build of Tor has been compiled with one "
               "or more options that might make it less reliable or secure! "
               "They are:%s", risky_option_list);
    }

    tor_compress_log_init_warnings();
  }

+35 −0
Original line number Diff line number Diff line
/* Copyright (c) 2001 Matej Pfajfar.
 * Copyright (c) 2001-2004, Roger Dingledine.
 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
 * Copyright (c) 2007-2020, The Tor Project, Inc. */
/* See LICENSE for licensing information */

/**
 * \file risky_options.c
 * \brief List compile-time options that might make Tor less reliable.
 **/

#include "orconfig.h"
#include "app/main/risky_options.h"

/** A space-separated list of the compile-time options might make Tor less
 *  reliable or secure.  These options mainly exist for testing or debugging.
 */
const char risky_option_list[] =
  ""
#ifdef DISABLE_ASSERTS_IN_TEST
  " --disable-asserts-in-test"
#endif
#ifdef TOR_UNIT_TESTS
  " TOR_UNIT_TESTS"
#endif
#ifdef ENABLE_RESTART_DEBUGGING
  " --enable-restart-debugging"
#endif
#ifdef ALL_BUGS_ARE_FATAL
  " --enable-all-bugs-are-fatal"
#endif
#ifdef DISABLE_MEMORY_SENTINELS
  " --disable-memory-sentinels"
#endif
  ;
+17 −0
Original line number Diff line number Diff line
/* Copyright (c) 2001 Matej Pfajfar.
 * Copyright (c) 2001-2004, Roger Dingledine.
 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
 * Copyright (c) 2007-2020, The Tor Project, Inc. */
/* See LICENSE for licensing information */

/**
 * \file risky_options.h
 * \brief Header for risky_options.c
 **/

#ifndef TOR_RISKY_OPTIONS_H
#define TOR_RISKY_OPTIONS_H

extern const char risky_option_list[];

#endif