Commit 78a72f81 authored by Nick Mathewson's avatar Nick Mathewson 👉
Browse files

Merge branch 'bug34078_prelim_035' into maint-0.3.5

parents d380acae 3d364115
...@@ -356,6 +356,22 @@ if test "$tor_cv_c_c99_designated_init" != "yes"; then ...@@ -356,6 +356,22 @@ if test "$tor_cv_c_c99_designated_init" != "yes"; then
AC_MSG_ERROR([Your compiler doesn't support c99 designated initializers. This is required as of Tor 0.2.6.x]) AC_MSG_ERROR([Your compiler doesn't support c99 designated initializers. This is required as of Tor 0.2.6.x])
fi fi
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Werror"
AC_CACHE_CHECK([for __attribute__((fallthrough))],
tor_cv_c_attr_fallthrough,
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([extern int x; void fn(void) ;],
[[ switch (x) { case 1: fn(); __attribute__((fallthrough));
case 2: fn(); break; } ]])],
[tor_cv_c_attr_fallthrough=yes],
[tor_cv_c_attr_fallthrough=no] )])
CFLAGS="$saved_CFLAGS"
if test "$tor_cv_c_attr_fallthrough" == "yes"; then
AC_DEFINE(HAVE_ATTR_FALLTHROUGH, [1], [defined if we have the fallthrough attribute.])
fi
TORUSER=_tor TORUSER=_tor
AC_ARG_WITH(tor-user, AC_ARG_WITH(tor-user,
AS_HELP_STRING(--with-tor-user=NAME, [specify username for tor daemon]), AS_HELP_STRING(--with-tor-user=NAME, [specify username for tor daemon]),
......
...@@ -1067,7 +1067,10 @@ parse_socks_client(const uint8_t *data, size_t datalen, ...@@ -1067,7 +1067,10 @@ parse_socks_client(const uint8_t *data, size_t datalen,
log_info(LD_NET, "SOCKS 5 client: need authentication."); log_info(LD_NET, "SOCKS 5 client: need authentication.");
*drain_out = -1; *drain_out = -1;
return 2; return 2;
/* fall through */ default:
/* This wasn't supposed to be exhaustive; there are other
* authentication methods too. */
;
} }
*reason = tor_strdup("server doesn't support any of our available " *reason = tor_strdup("server doesn't support any of our available "
......
...@@ -35,6 +35,9 @@ ...@@ -35,6 +35,9 @@
#define ED25519_FN(fn) ED25519_FN2(fn,ED25519_SUFFIX) #define ED25519_FN(fn) ED25519_FN2(fn,ED25519_SUFFIX)
#include "orconfig.h" #include "orconfig.h"
#include "lib/cc/compat_compiler.h"
#include "ed25519-donna.h" #include "ed25519-donna.h"
#include "ed25519_donna_tor.h" #include "ed25519_donna_tor.h"
#include "ed25519-randombytes.h" #include "ed25519-randombytes.h"
...@@ -366,4 +369,3 @@ ed25519_donna_scalarmult_with_group_order(unsigned char *out, ...@@ -366,4 +369,3 @@ ed25519_donna_scalarmult_with_group_order(unsigned char *out,
} }
#include "test-internals.c" #include "test-internals.c"
...@@ -267,7 +267,7 @@ keypin_add_or_replace_entry_in_map(keypin_ent_t *ent) ...@@ -267,7 +267,7 @@ keypin_add_or_replace_entry_in_map(keypin_ent_t *ent)
} }
tor_free(ent2); tor_free(ent2);
r = -1; r = -1;
/* Fall through */ /* Note lack of return here: we fall through to the next line. */
} }
keypin_add_entry_to_map(ent); keypin_add_entry_to_map(ent);
......
...@@ -546,7 +546,7 @@ send_resolved_cell,(edge_connection_t *conn, uint8_t answer_type, ...@@ -546,7 +546,7 @@ send_resolved_cell,(edge_connection_t *conn, uint8_t answer_type,
break; break;
} else { } else {
answer_type = RESOLVED_TYPE_ERROR; answer_type = RESOLVED_TYPE_ERROR;
/* fall through. */ /* We let this fall through and treat it as an error. */
} }
/* Falls through. */ /* Falls through. */
case RESOLVED_TYPE_ERROR_TRANSIENT: case RESOLVED_TYPE_ERROR_TRANSIENT:
......
...@@ -50,6 +50,12 @@ ...@@ -50,6 +50,12 @@
#define CHECK_SCANF(formatIdx, firstArg) #define CHECK_SCANF(formatIdx, firstArg)
#endif /* defined(__GNUC__) */ #endif /* defined(__GNUC__) */
#if defined(HAVE_ATTR_FALLTHROUGH)
#define FALLTHROUGH __attribute__((fallthrough))
#else
#define FALLTHROUGH
#endif
/* What GCC do we have? */ /* What GCC do we have? */
#ifdef __GNUC__ #ifdef __GNUC__
#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) #define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
......
...@@ -100,7 +100,7 @@ library_supports_digest(digest_algorithm_t alg) ...@@ -100,7 +100,7 @@ library_supports_digest(digest_algorithm_t alg)
switch (alg) { switch (alg) {
case DIGEST_SHA1: /* Fall through */ case DIGEST_SHA1: /* Fall through */
case DIGEST_SHA256: /* Fall through */ case DIGEST_SHA256: /* Fall through */
case DIGEST_SHA512: /* Fall through */ case DIGEST_SHA512:
return true; return true;
case DIGEST_SHA3_256: /* Fall through */ case DIGEST_SHA3_256: /* Fall through */
case DIGEST_SHA3_512: /* Fall through */ case DIGEST_SHA3_512: /* Fall through */
......
...@@ -926,6 +926,7 @@ tor_addr_copy_tight(tor_addr_t *dest, const tor_addr_t *src) ...@@ -926,6 +926,7 @@ tor_addr_copy_tight(tor_addr_t *dest, const tor_addr_t *src)
break; break;
case AF_INET6: case AF_INET6:
memcpy(dest->addr.in6_addr.s6_addr, src->addr.in6_addr.s6_addr, 16); memcpy(dest->addr.in6_addr.s6_addr, src->addr.in6_addr.s6_addr, 16);
break;
case AF_UNSPEC: case AF_UNSPEC:
break; break;
// LCOV_EXCL_START // LCOV_EXCL_START
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment