diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-06-02 14:51:13 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-06-02 14:51:13 -0400 |
commit | 34edf17d88a5eaf7bd10aaa557ac5af5c85fa71f (patch) | |
tree | 1b098728504f33a11d0159aed69b4fc684422591 | |
parent | e8386cce1ce41b667095cd9590567204d2ab0ba0 (diff) | |
parent | 6d8a2ff24f18cc008d3c180a191f5040c7b2e2ba (diff) | |
download | tor-34edf17d88a5eaf7bd10aaa557ac5af5c85fa71f.tar.gz tor-34edf17d88a5eaf7bd10aaa557ac5af5c85fa71f.zip |
Merge remote-tracking branch 'teor/bug16115-minor-fixes'
-rw-r--r-- | changes/bug16115-NULL-getinfo-onions | 4 | ||||
-rw-r--r-- | changes/bug16115-init-var | 4 | ||||
-rw-r--r-- | changes/bug16115-signing-key-NULL-check | 6 | ||||
-rw-r--r-- | changes/bug16115-spawn-comment | 6 | ||||
-rw-r--r-- | changes/bug16115-undef-directive-in-macro | 6 | ||||
-rw-r--r-- | changes/bug16115-unused-find-cipher | 7 | ||||
-rw-r--r-- | src/common/compat_pthreads.c | 3 | ||||
-rw-r--r-- | src/common/tortls.c | 2 | ||||
-rw-r--r-- | src/or/control.c | 10 | ||||
-rw-r--r-- | src/or/rendcommon.c | 2 | ||||
-rw-r--r-- | src/or/routerkeys.c | 3 | ||||
-rw-r--r-- | src/test/test_util.c | 7 |
12 files changed, 50 insertions, 10 deletions
diff --git a/changes/bug16115-NULL-getinfo-onions b/changes/bug16115-NULL-getinfo-onions new file mode 100644 index 0000000000..ec1661e18d --- /dev/null +++ b/changes/bug16115-NULL-getinfo-onions @@ -0,0 +1,4 @@ + o Minor fixes (threads, comments): + - Check for NULL values in getinfo_helper_onions + Patch by "teor". + Fix on 915c7438a77e in Tor 0.2.7.1-alpha. diff --git a/changes/bug16115-init-var b/changes/bug16115-init-var new file mode 100644 index 0000000000..e3e924a3e3 --- /dev/null +++ b/changes/bug16115-init-var @@ -0,0 +1,4 @@ + o Minor fixes (threads, comments): + - Always initialise return value in compute_desc_id in rendcommon.c + Patch by "teor". + Fix on e6a581f126ba, released in 0.2.7.1-alpha. diff --git a/changes/bug16115-signing-key-NULL-check b/changes/bug16115-signing-key-NULL-check new file mode 100644 index 0000000000..3d4f05bc28 --- /dev/null +++ b/changes/bug16115-signing-key-NULL-check @@ -0,0 +1,6 @@ + o Minor fixes (threads, comments): + - Ensure signing_key is non-NULL before accessing one of its members + signing_key can be NULL in ed_key_init_from_file in routerkeys.c. + Discovered by clang 3.7 address sanitizer. + Patch by "teor". + Fix on c03694938ed0, not in any released version of Tor. diff --git a/changes/bug16115-spawn-comment b/changes/bug16115-spawn-comment new file mode 100644 index 0000000000..7792564688 --- /dev/null +++ b/changes/bug16115-spawn-comment @@ -0,0 +1,6 @@ + o Minor fixes (threads, comments): + - Fix an incorrect comment on spawn_func in compat_pthreads.c. + spawn_func calls pthread_create on unix, not fork + Patch by "teor". + Bugfix on unknown tor version (existing code split out of + compat.c into compat_pthreads.c in c2f0d52b7fb9 on 22 Sep 2013). diff --git a/changes/bug16115-undef-directive-in-macro b/changes/bug16115-undef-directive-in-macro new file mode 100644 index 0000000000..8031267cdf --- /dev/null +++ b/changes/bug16115-undef-directive-in-macro @@ -0,0 +1,6 @@ + o Minor fixes (threads, comments): + - Remove undefined directive-in-macro in test_util_writepid + clang 3.7 complains that using a preprocessor directive inside + a macro invocation in test_util_writepid in test_util.c is undefined. + Patch by "teor". + Fix on 79e85313aa61 on 0.2.7.1-alpha. diff --git a/changes/bug16115-unused-find-cipher b/changes/bug16115-unused-find-cipher new file mode 100644 index 0000000000..0f04d6795b --- /dev/null +++ b/changes/bug16115-unused-find-cipher @@ -0,0 +1,7 @@ + o Minor fixes (threads, comments): + - Silence unused variable warnings in find_cipher_by_id + Unused variable warnings were still generated under some versions + of OpenSSL. Instead, make sure all variables are used under all + versions of OpenSSL. + Patch by "teor". + Fix on 496df21c89d1, not in any released version of tor. diff --git a/src/common/compat_pthreads.c b/src/common/compat_pthreads.c index fdc504690b..487f7e5851 100644 --- a/src/common/compat_pthreads.c +++ b/src/common/compat_pthreads.c @@ -50,7 +50,8 @@ static pthread_attr_t attr_detached; static int threads_initialized = 0; /** Minimalist interface to run a void function in the background. On - * Unix calls fork, on win32 calls beginthread. Returns -1 on failure. + * Unix calls pthread_create, on win32 calls beginthread. Returns -1 on + * failure. * func should not return, but rather should call spawn_exit. * * NOTE: if <b>data</b> is used, it should not be allocated on the stack, diff --git a/src/common/tortls.c b/src/common/tortls.c index a1bc9ab544..11ec4bac75 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -1444,6 +1444,8 @@ find_cipher_by_id(const SSL *ssl, const SSL_METHOD *m, uint16_t cipher) } #endif (void) ssl; + (void) m; + (void) cipher; return 1; /* No way to search */ } diff --git a/src/or/control.c b/src/or/control.c index 2eaad4e373..7a113f2c1c 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -2193,7 +2193,7 @@ getinfo_helper_onions(control_connection_t *control_conn, { smartlist_t *onion_list = NULL; - if (!strcmp(question, "onions/current")) { + if (control_conn && !strcmp(question, "onions/current")) { onion_list = control_conn->ephemeral_onion_services; } else if (!strcmp(question, "onions/detached")) { onion_list = detached_onion_services; @@ -2201,10 +2201,14 @@ getinfo_helper_onions(control_connection_t *control_conn, return 0; } if (!onion_list || smartlist_len(onion_list) == 0) { - *errmsg = "No onion services of the specified type."; + if (errmsg) { + *errmsg = "No onion services of the specified type."; + } return -1; } - *answer = smartlist_join_strings(onion_list, "\r\n", 0, NULL); + if (answer) { + *answer = smartlist_join_strings(onion_list, "\r\n", 0, NULL); + } return 0; } diff --git a/src/or/rendcommon.c b/src/or/rendcommon.c index ec4353c409..0acca58713 100644 --- a/src/or/rendcommon.c +++ b/src/or/rendcommon.c @@ -1417,7 +1417,7 @@ rend_data_dup(const rend_data_t *data) static int compute_desc_id(rend_data_t *rend_data) { - int ret; + int ret = 0; unsigned replica; time_t now = time(NULL); diff --git a/src/or/routerkeys.c b/src/or/routerkeys.c index b17d1958f7..e79204cf09 100644 --- a/src/or/routerkeys.c +++ b/src/or/routerkeys.c @@ -152,7 +152,8 @@ ed_key_init_from_file(const char *fname, uint32_t flags, ED25519_PUBKEY_LEN)) { tor_log(severity, LD_OR, "Cert was for wrong key"); bad_cert = 1; - } else if (tor_cert_checksig(cert, &signing_key->pubkey, now) < 0 && + } else if (signing_key && + tor_cert_checksig(cert, &signing_key->pubkey, now) < 0 && (signing_key || cert->cert_expired)) { tor_log(severity, LD_OR, "Can't check certificate"); bad_cert = 1; diff --git a/src/test/test_util.c b/src/test/test_util.c index 30dc59844a..b0366db37f 100644 --- a/src/test/test_util.c +++ b/src/test/test_util.c @@ -4319,13 +4319,12 @@ test_util_writepid(void *arg) int n = sscanf(contents, "%lu\n%c", &pid, &c); tt_int_op(n, OP_EQ, 1); - tt_uint_op(pid, OP_EQ, + #ifdef _WIN32 - _getpid() + tt_uint_op(pid, OP_EQ, _getpid()); #else - getpid() + tt_uint_op(pid, OP_EQ, getpid()); #endif - ); done: tor_free(contents); |