From 06368e531097d3b973f1f052e77e7ffdecde1b70 Mon Sep 17 00:00:00 2001 From: Fernando Fernandez Mancera Date: Fri, 12 Jan 2018 17:44:30 +0100 Subject: [PATCH] Fix minGW compatibility issue with zu format specifier. Define TOR_PRIuSZ as minGW compiler doesn't support zu format specifier for size_t type. Fixes #24861 on ac9eebd. Signed-off-by: Fernando Fernandez Mancera --- changes/ticket24861 | 5 +++++ src/common/torint.h | 10 ++++++++++ src/or/circuitlist.c | 11 +++++++---- 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 changes/ticket24861 diff --git a/changes/ticket24861 b/changes/ticket24861 new file mode 100644 index 0000000000..beddb770b1 --- /dev/null +++ b/changes/ticket24861 @@ -0,0 +1,5 @@ + o Minor bugfix (zu format specifier on minGW): + - Fix minGW compatibility issue. Define TOR_PRIuSZ as minGW compiler + doesn't support zu format specifier for size_t type. Fixes bug 24861; + bugfix on ac9eebd6363. + Patch by "ffmancera". diff --git a/src/common/torint.h b/src/common/torint.h index bc81c114f8..0b8061d24f 100644 --- a/src/common/torint.h +++ b/src/common/torint.h @@ -348,6 +348,16 @@ typedef uint32_t uintptr_t; #endif /* (SIZEOF_SIZE_T == 4) || ... */ #endif /* !defined(SIZE_MAX) */ +#ifdef _WIN32 +# ifdef _WIN64 +# define TOR_PRIuSZ PRIu64 +# else +# define TOR_PRIuSZ PRIu32 +# endif +#else +# define TOR_PRIuSZ "zu" +#endif + #ifndef SSIZE_MAX #if (SIZEOF_SIZE_T == 4) #define SSIZE_MAX INT32_MAX diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 661438d8f1..028fdbfc2f 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -51,6 +51,8 @@ * logic, which was originally circuit-focused. **/ #define CIRCUITLIST_PRIVATE +#include "torint.h" /* TOR_PRIuSZ */ + #include "or.h" #include "channel.h" #include "circpathbias.h" @@ -2404,10 +2406,11 @@ circuits_handle_oom(size_t current_allocation) int n_circuits_killed=0; int n_dirconns_killed=0; uint32_t now_ts; - log_notice(LD_GENERAL, "We're low on memory (cell queues total alloc: %zu," - " buffer total alloc: %zu, tor compress total alloc: %zu," - " rendezvous cache total alloc: %zu). Killing circuits with" - " over-long queues. (This behavior is controlled by" + log_notice(LD_GENERAL, "We're low on memory (cell queues total alloc:" + " %"TOR_PRIuSZ" buffer total alloc: %" TOR_PRIuSZ "," + " tor compress total alloc: %" TOR_PRIuSZ + " rendezvous cache total alloc: %" TOR_PRIuSZ "). Killing" + " circuits withover-long queues. (This behavior is controlled by" " MaxMemInQueues.)", cell_queues_get_total_allocation(), buf_get_total_allocation(),