summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-06-20 07:50:00 -0400
committerNick Mathewson <nickm@torproject.org>2018-06-20 07:50:00 -0400
commit38cb638c325bc2612befc8176c545b1bcae9834f (patch)
tree93fc0ebc2aaef5402b83a61ad038bbddc0ba40ec
parentac1747e47fc8a8486df3844045238f72bd4985fe (diff)
parentce9b9cc18d9cedd9144e86dcef48c6ae99abe7d5 (diff)
downloadtor-38cb638c325bc2612befc8176c545b1bcae9834f.tar.gz
tor-38cb638c325bc2612befc8176c545b1bcae9834f.zip
Merge branch 'rl1987_bug26196_rebased_034' into maint-0.3.4
-rw-r--r--changes/bug261967
-rw-r--r--configure.ac1
-rw-r--r--src/test/test.h2
-rw-r--r--src/test/test_bridges.c6
4 files changed, 11 insertions, 5 deletions
diff --git a/changes/bug26196 b/changes/bug26196
new file mode 100644
index 0000000000..e63f09a2d6
--- /dev/null
+++ b/changes/bug26196
@@ -0,0 +1,7 @@
+ o Minor bugfixes (testing, compilation):
+ - Refrain from trying to get an item from empty smartlist in
+ test_bridges_clear_bridge_list. Set DEBUG_SMARTLIST in unit
+ tests to catch improper smartlist usage. Furthermore,
+ enable DEBUG_SMARTLIST globally when build is configured
+ with fragile hardening. Fixes bug 26196; bugfix on
+ 0.3.4.1-alpha.
diff --git a/configure.ac b/configure.ac
index 48ca5bae14..1b57361e02 100644
--- a/configure.ac
+++ b/configure.ac
@@ -176,6 +176,7 @@ AC_ARG_ENABLE(fragile-hardening,
AS_HELP_STRING(--enable-fragile-hardening, [enable more fragile and expensive compiler hardening; makes Tor slower]))
if test "x$enable_expensive_hardening" = "xyes" || test "x$enable_fragile_hardening" = "xyes"; then
fragile_hardening="yes"
+ AC_DEFINE(DEBUG_SMARTLIST, 1, [Enable smartlist debugging])
fi
dnl Linker hardening options
diff --git a/src/test/test.h b/src/test/test.h
index 3095d54e33..63b2b30746 100644
--- a/src/test/test.h
+++ b/src/test/test.h
@@ -11,6 +11,8 @@
* \brief Macros and functions used by unit tests.
*/
+#define DEBUG_SMARTLIST 1
+
#include "compat.h"
#include "tinytest.h"
#define TT_EXIT_TEST_FUNCTION STMT_BEGIN goto done; STMT_END
diff --git a/src/test/test_bridges.c b/src/test/test_bridges.c
index c4a4cacd98..c44f791e0d 100644
--- a/src/test/test_bridges.c
+++ b/src/test/test_bridges.c
@@ -140,7 +140,6 @@ test_bridges_clear_bridge_list(void *arg)
const smartlist_t *bridgelist;
const smartlist_t *bridgelist_after;
const bridge_info_t *bridge;
- const bridge_info_t *bridge_after;
helper_add_bridges_to_bridgelist(arg);
bridgelist = bridge_list_get();
@@ -152,10 +151,7 @@ test_bridges_clear_bridge_list(void *arg)
clear_bridge_list();
bridgelist_after = bridge_list_get();
tt_ptr_op(bridgelist_after, OP_NE, NULL);
-
- bridge_after = smartlist_get(bridgelist, 0);
- // There now shouldn't be a first bridge
- tt_ptr_op(bridge_after, OP_EQ, NULL);
+ tt_int_op(smartlist_len(bridgelist_after), OP_EQ, 0);
done:
return;