summaryrefslogtreecommitdiff
path: root/databases/mariadb104-server/files/patch-MDEV-15961
diff options
context:
space:
mode:
Diffstat (limited to 'databases/mariadb104-server/files/patch-MDEV-15961')
-rw-r--r--databases/mariadb104-server/files/patch-MDEV-1596150
1 files changed, 50 insertions, 0 deletions
diff --git a/databases/mariadb104-server/files/patch-MDEV-15961 b/databases/mariadb104-server/files/patch-MDEV-15961
new file mode 100644
index 000000000000..65fb24a2f46d
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-MDEV-15961
@@ -0,0 +1,50 @@
+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 <execinfo.h>
+ #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))
+ {