diff -u -r ../elfutils-0.166/libdwfl/dwfl_error.c ./libdwfl/dwfl_error.c
--- ../elfutils-0.166/libdwfl/dwfl_error.c	2015-11-27 08:36:29.000000000 -0500
+++ ./libdwfl/dwfl_error.c	2016-05-04 13:15:42.522820139 -0400
@@ -140,6 +140,7 @@
 const char *
 dwfl_errmsg (int error)
 {
+  char* error_msg;
   if (error == 0 || error == -1)
     {
       int last_error = global_error;
@@ -154,7 +155,9 @@
   switch (error &~ 0xffff)
     {
     case OTHER_ERROR (ERRNO):
-      return strerror_r (error & 0xffff, "bad", 0);
+      error_msg = malloc(256);
+      strerror_r (error & 0xffff, error_msg, 256);
+      return error_msg;
     case OTHER_ERROR (LIBELF):
       return elf_errmsg (error & 0xffff);
     case OTHER_ERROR (LIBDW):
