diff --git a/libc/bionic/__fgets_chk.cpp b/libc/bionic/__fgets_chk.cpp
index 429eda5..32b608e 100644
--- a/libc/bionic/__fgets_chk.cpp
+++ b/libc/bionic/__fgets_chk.cpp
@@ -49,7 +49,7 @@
     }
 
     if (((size_t) supplied_size) > dest_len_from_compiler) {
-        __fortify_chk_fail("fgets buffer overflow", 0);
+        __fortify_chk_fail("fgets buffer overflow prevented", 0);
     }
 
     return fgets(dest, supplied_size, stream);
diff --git a/libc/bionic/__memcpy_chk.cpp b/libc/bionic/__memcpy_chk.cpp
index a3d744c..b95a0d7 100644
--- a/libc/bionic/__memcpy_chk.cpp
+++ b/libc/bionic/__memcpy_chk.cpp
@@ -46,7 +46,7 @@
               size_t copy_amount, size_t dest_len)
 {
     if (__predict_false(copy_amount > dest_len)) {
-        __fortify_chk_fail("memcpy buffer overflow",
+        __fortify_chk_fail("memcpy buffer overflow prevented",
                              BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__memmove_chk.cpp b/libc/bionic/__memmove_chk.cpp
index 49a0597..5f51139 100644
--- a/libc/bionic/__memmove_chk.cpp
+++ b/libc/bionic/__memmove_chk.cpp
@@ -45,7 +45,7 @@
               size_t len, size_t dest_len)
 {
     if (__predict_false(len > dest_len)) {
-        __fortify_chk_fail("memmove buffer overflow",
+        __fortify_chk_fail("memmove buffer overflow prevented",
                              BIONIC_EVENT_MEMMOVE_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__memset_chk.cpp b/libc/bionic/__memset_chk.cpp
index f7a5f24..04c772b 100644
--- a/libc/bionic/__memset_chk.cpp
+++ b/libc/bionic/__memset_chk.cpp
@@ -43,7 +43,7 @@
  */
 extern "C" void *__memset_chk (void *dest, int c, size_t n, size_t dest_len) {
     if (__predict_false(n > dest_len)) {
-        __fortify_chk_fail("memset buffer overflow",
+        __fortify_chk_fail("memset buffer overflow prevented",
                              BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__recvfrom_chk.cpp b/libc/bionic/__recvfrom_chk.cpp
index 10a4263..3a9dab6 100644
--- a/libc/bionic/__recvfrom_chk.cpp
+++ b/libc/bionic/__recvfrom_chk.cpp
@@ -37,7 +37,7 @@
         const struct sockaddr* src_addr, socklen_t* addrlen)
 {
   if (__predict_false(len > buflen)) {
-    __fortify_chk_fail("recvfrom overflow", 0);
+    __fortify_chk_fail("recvfrom buffer overflow prevented", 0);
   }
 
   return recvfrom(socket, buf, len, flags, src_addr, addrlen);
diff --git a/libc/bionic/__strcat_chk.cpp b/libc/bionic/__strcat_chk.cpp
index e0b3259..37ecfe6 100644
--- a/libc/bionic/__strcat_chk.cpp
+++ b/libc/bionic/__strcat_chk.cpp
@@ -55,7 +55,7 @@
     while ((*dest++ = *src++) != '\0') {
         dest_buf_size--;
         if (__predict_false(dest_buf_size == 0)) {
-            __fortify_chk_fail("strcat buffer overflow",
+            __fortify_chk_fail("strcat buffer overflow prevented",
                                BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW);
         }
     }
diff --git a/libc/bionic/__strchr_chk.cpp b/libc/bionic/__strchr_chk.cpp
index 72559bc..87d8893 100644
--- a/libc/bionic/__strchr_chk.cpp
+++ b/libc/bionic/__strchr_chk.cpp
@@ -33,7 +33,7 @@
 extern "C" char* __strchr_chk(const char* p, int ch, size_t s_len) {
   for (;; ++p, s_len--) {
     if (__predict_false(s_len == 0)) {
-      __fortify_chk_fail("read beyond buffer", 0);
+      __fortify_chk_fail("strchr buffer overrun prevented", 0);
     }
     if (*p == static_cast<char>(ch)) {
       return const_cast<char*>(p);
diff --git a/libc/bionic/__strcpy_chk.cpp b/libc/bionic/__strcpy_chk.cpp
index 5aa0e93..e92e539 100644
--- a/libc/bionic/__strcpy_chk.cpp
+++ b/libc/bionic/__strcpy_chk.cpp
@@ -45,7 +45,7 @@
     // TODO: optimize so we don't scan src twice.
     size_t src_len = strlen(src) + 1;
     if (__predict_false(src_len > dest_len)) {
-        __fortify_chk_fail("strcpy buffer overflow",
+        __fortify_chk_fail("strcpy buffer overflow prevented",
                              BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__strlcat_chk.cpp b/libc/bionic/__strlcat_chk.cpp
index 25c67ad..5f97093 100644
--- a/libc/bionic/__strlcat_chk.cpp
+++ b/libc/bionic/__strlcat_chk.cpp
@@ -46,7 +46,7 @@
               size_t supplied_size, size_t dest_len_from_compiler)
 {
     if (__predict_false(supplied_size > dest_len_from_compiler)) {
-        __fortify_chk_fail("strlcat buffer overflow", 0);
+        __fortify_chk_fail("strlcat buffer overflow prevented", 0);
     }
 
     return strlcat(dest, src, supplied_size);
diff --git a/libc/bionic/__strlcpy_chk.cpp b/libc/bionic/__strlcpy_chk.cpp
index f6b11fc..a6877eb 100644
--- a/libc/bionic/__strlcpy_chk.cpp
+++ b/libc/bionic/__strlcpy_chk.cpp
@@ -46,7 +46,7 @@
               size_t supplied_size, size_t dest_len_from_compiler)
 {
     if (__predict_false(supplied_size > dest_len_from_compiler)) {
-        __fortify_chk_fail("strlcpy buffer overflow", 0);
+        __fortify_chk_fail("strlcpy buffer overflow prevented", 0);
     }
 
     return strlcpy(dest, src, supplied_size);
diff --git a/libc/bionic/__strlen_chk.cpp b/libc/bionic/__strlen_chk.cpp
index 151a497..87be0e6 100644
--- a/libc/bionic/__strlen_chk.cpp
+++ b/libc/bionic/__strlen_chk.cpp
@@ -57,7 +57,7 @@
     size_t ret = strlen(s);
 
     if (__predict_false(ret >= s_len)) {
-        __fortify_chk_fail("strlen read overflow", 0);
+        __fortify_chk_fail("strlen buffer overrun prevented", 0);
     }
 
     return ret;
diff --git a/libc/bionic/__strncat_chk.cpp b/libc/bionic/__strncat_chk.cpp
index f54d838..4f4b327 100644
--- a/libc/bionic/__strncat_chk.cpp
+++ b/libc/bionic/__strncat_chk.cpp
@@ -59,7 +59,7 @@
         len--; dest_buf_size--;
 
         if (__predict_false(dest_buf_size == 0)) {
-            __fortify_chk_fail("strncat buffer overflow",
+            __fortify_chk_fail("strncat buffer overflow prevented",
                                BIONIC_EVENT_STRNCAT_BUFFER_OVERFLOW);
         }
 
diff --git a/libc/bionic/__strncpy_chk.cpp b/libc/bionic/__strncpy_chk.cpp
index 6b1a3c7..d362b34 100644
--- a/libc/bionic/__strncpy_chk.cpp
+++ b/libc/bionic/__strncpy_chk.cpp
@@ -45,7 +45,7 @@
               size_t len, size_t dest_len)
 {
   if (__predict_false(len > dest_len)) {
-    __fortify_chk_fail("strncpy dest buffer overflow",
+    __fortify_chk_fail("strncpy dest buffer overflow prevented",
                        BIONIC_EVENT_STRNCPY_BUFFER_OVERFLOW);
   }
 
@@ -64,7 +64,7 @@
               size_t n, size_t dest_len, size_t src_len)
 {
   if (__predict_false(n > dest_len)) {
-    __fortify_chk_fail("strncpy dest buffer overflow",
+    __fortify_chk_fail("strncpy dest buffer overflow prevented",
                        BIONIC_EVENT_STRNCPY_BUFFER_OVERFLOW);
   }
   if (n != 0) {
@@ -83,7 +83,7 @@
 
     size_t s_copy_len = static_cast<size_t>(s - src);
     if (__predict_false(s_copy_len > src_len)) {
-      __fortify_chk_fail("strncpy read beyond end of src buffer", 0);
+      __fortify_chk_fail("strncpy buffer overrun prevented", 0);
     }
   }
 
diff --git a/libc/bionic/__strrchr_chk.cpp b/libc/bionic/__strrchr_chk.cpp
index 14100f7..2bdf36a 100644
--- a/libc/bionic/__strrchr_chk.cpp
+++ b/libc/bionic/__strrchr_chk.cpp
@@ -37,7 +37,7 @@
 
     for (save = NULL;; ++p, s_len--) {
         if (s_len == 0)
-            __fortify_chk_fail("strrchr read beyond buffer", 0);
+            __fortify_chk_fail("strrchr read overrun prevented", 0);
         if (*p == (char) ch)
             save = (char *)p;
         if (!*p)
diff --git a/libc/bionic/__vsnprintf_chk.cpp b/libc/bionic/__vsnprintf_chk.cpp
index 2d3a81e..731f9c5 100644
--- a/libc/bionic/__vsnprintf_chk.cpp
+++ b/libc/bionic/__vsnprintf_chk.cpp
@@ -51,7 +51,7 @@
         va_list va)
 {
     if (__predict_false(supplied_size > dest_len_from_compiler)) {
-        __fortify_chk_fail("vsnprintf buffer overflow", 0);
+        __fortify_chk_fail("vsnprintf buffer overflow prevented", 0);
     }
 
     return vsnprintf(dest, supplied_size, format, va);
diff --git a/libc/bionic/__vsprintf_chk.cpp b/libc/bionic/__vsprintf_chk.cpp
index 12b0ca6..560f12e 100644
--- a/libc/bionic/__vsprintf_chk.cpp
+++ b/libc/bionic/__vsprintf_chk.cpp
@@ -52,7 +52,7 @@
     int ret = vsnprintf(dest, dest_len_from_compiler, format, va);
 
     if ((size_t) ret >= dest_len_from_compiler) {
-        __fortify_chk_fail("vsprintf buffer overflow", 0);
+        __fortify_chk_fail("vsprintf buffer overflow prevented", 0);
     }
 
     return ret;
