MDEV-15961: Fix stacktraces under FreeBSD https://jira.mariadb.org/browse/MDEV-15961 --- mysys/stacktrace.c.orig 2018-07-02 07:34:11 UTC +++ mysys/stacktrace.c @@ -34,19 +34,19 @@ #include #endif +#ifdef __linux__ #define PTR_SANE(p) ((p) && (char*)(p) >= heap_start && (char*)(p) <= heap_end) - static char *heap_start; - -#if(defined HAVE_BSS_START) && !(defined __linux__) extern char *__bss_start; -#endif +#else +#define PTR_SANE(p) (p) +#endif /* __linux */ void my_init_stacktrace() { -#if(defined HAVE_BSS_START) && !(defined __linux__) +#ifdef __linux__ heap_start = (char*) &__bss_start; -#endif +#endif /* __linux__ */ } #ifdef __linux__ @@ -149,15 +149,16 @@ static int safe_print_str(const char *ad int my_safe_print_str(const char* val, size_t max_len) { +#ifdef __linux__ +/* Only needed by the linux version of PTR_SANE */ char *heap_end; -#ifdef __linux__ // Try and make use of /proc filesystem to safely print memory contents. if (!safe_print_str(val, max_len)) return 0; -#endif heap_end= (char*) sbrk(0); +#endif if (!PTR_SANE(val)) {