diff --git a/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S b/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S
index a5b82aa..efa9595 100644
--- a/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S
+++ b/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S
@@ -224,4 +224,4 @@
 
     .data
 error_string:
-    .string "strcat buffer overflow"
+    .string "strcat prevented write past end of buffer"
diff --git a/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S b/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S
index 37ad06c..cd91dfc 100644
--- a/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S
+++ b/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S
@@ -185,4 +185,4 @@
 
     .data
 error_string:
-    .string "strcpy buffer overflow"
+    .string "strcpy prevented write past end of buffer"
diff --git a/libc/arch-arm/cortex-a15/bionic/memcpy.S b/libc/arch-arm/cortex-a15/bionic/memcpy.S
index 3d23a1c..a1ef6f5 100644
--- a/libc/arch-arm/cortex-a15/bionic/memcpy.S
+++ b/libc/arch-arm/cortex-a15/bionic/memcpy.S
@@ -109,4 +109,4 @@
 
         .data
 error_string:
-        .string "memcpy buffer overflow"
+        .string "memcpy prevented write past end of buffer"
diff --git a/libc/arch-arm/cortex-a15/bionic/memset.S b/libc/arch-arm/cortex-a15/bionic/memset.S
index b5fc6ba..72e83cc 100644
--- a/libc/arch-arm/cortex-a15/bionic/memset.S
+++ b/libc/arch-arm/cortex-a15/bionic/memset.S
@@ -197,4 +197,4 @@
 
         .data
 error_string:
-        .string     "memset buffer overflow"
+        .string     "memset prevented write past end of buffer"
diff --git a/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S b/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S
index ffc440e..daea34c 100644
--- a/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S
+++ b/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S
@@ -227,4 +227,4 @@
 
     .data
 error_string:
-    .string "strcat buffer overflow"
+    .string "strcat prevented write past end of buffer"
diff --git a/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S b/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S
index b197667..d4e0c0a 100644
--- a/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S
+++ b/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S
@@ -191,4 +191,4 @@
 
     .data
 error_string:
-    .string "strcpy buffer overflow"
+    .string "strcpy prevented write past end of buffer"
diff --git a/libc/arch-arm/cortex-a9/bionic/memcpy.S b/libc/arch-arm/cortex-a9/bionic/memcpy.S
index 64b00d8..9faea96 100644
--- a/libc/arch-arm/cortex-a9/bionic/memcpy.S
+++ b/libc/arch-arm/cortex-a9/bionic/memcpy.S
@@ -89,4 +89,4 @@
 
         .data
 error_string:
-        .string     "memcpy buffer overflow"
+        .string     "memcpy prevented write past end of buffer"
diff --git a/libc/arch-arm/cortex-a9/bionic/memset.S b/libc/arch-arm/cortex-a9/bionic/memset.S
index f6be66a..9609db9 100644
--- a/libc/arch-arm/cortex-a9/bionic/memset.S
+++ b/libc/arch-arm/cortex-a9/bionic/memset.S
@@ -201,4 +201,4 @@
 
         .data
 error_string:
-        .string     "memset buffer overflow"
+        .string     "memset prevented write past end of buffer"
diff --git a/libc/arch-arm/generic/bionic/memcpy.S b/libc/arch-arm/generic/bionic/memcpy.S
index 24373d8..c5168d6 100644
--- a/libc/arch-arm/generic/bionic/memcpy.S
+++ b/libc/arch-arm/generic/bionic/memcpy.S
@@ -401,4 +401,4 @@
 
         .data
 error_string:
-        .string     "memcpy buffer overflow"
+        .string     "memcpy prevented write past end of buffer"
diff --git a/libc/arch-arm/generic/bionic/memset.S b/libc/arch-arm/generic/bionic/memset.S
index 399bae9..47dcedd 100644
--- a/libc/arch-arm/generic/bionic/memset.S
+++ b/libc/arch-arm/generic/bionic/memset.S
@@ -130,4 +130,4 @@
 
         .data
 error_string:
-        .string     "memset buffer overflow"
+        .string     "memset prevented write past end of buffer"
diff --git a/libc/arch-arm/krait/bionic/__strcat_chk.S b/libc/arch-arm/krait/bionic/__strcat_chk.S
index bb4bb86..00fd01e 100644
--- a/libc/arch-arm/krait/bionic/__strcat_chk.S
+++ b/libc/arch-arm/krait/bionic/__strcat_chk.S
@@ -222,4 +222,4 @@
 
     .data
 error_string:
-    .string "strcat buffer overflow"
+    .string "strcat prevented write past end of buffer"
diff --git a/libc/arch-arm/krait/bionic/__strcpy_chk.S b/libc/arch-arm/krait/bionic/__strcpy_chk.S
index 1116cf6..3c802b5 100644
--- a/libc/arch-arm/krait/bionic/__strcpy_chk.S
+++ b/libc/arch-arm/krait/bionic/__strcpy_chk.S
@@ -184,4 +184,4 @@
 
     .data
 error_string:
-    .string "strcpy buffer overflow"
+    .string "strcpy prevented write past end of buffer"
diff --git a/libc/arch-arm/krait/bionic/memcpy.S b/libc/arch-arm/krait/bionic/memcpy.S
index f7277fc..d3278d2 100644
--- a/libc/arch-arm/krait/bionic/memcpy.S
+++ b/libc/arch-arm/krait/bionic/memcpy.S
@@ -89,4 +89,4 @@
 
         .data
 error_string:
-        .string     "memcpy buffer overflow"
+        .string     "memcpy prevented write past end of buffer"
diff --git a/libc/arch-arm/krait/bionic/memset.S b/libc/arch-arm/krait/bionic/memset.S
index 005dfd8..6595e1f 100644
--- a/libc/arch-arm/krait/bionic/memset.S
+++ b/libc/arch-arm/krait/bionic/memset.S
@@ -116,4 +116,4 @@
 
         .data
 error_string:
-        .string     "memset buffer overflow"
+        .string     "memset prevented write past end of buffer"
diff --git a/libc/bionic/__fgets_chk.cpp b/libc/bionic/__fgets_chk.cpp
index 32b608e..7f6b067 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 prevented", 0);
+        __fortify_chk_fail("fgets prevented write past end of buffer", 0);
     }
 
     return fgets(dest, supplied_size, stream);
diff --git a/libc/bionic/__memcpy_chk.cpp b/libc/bionic/__memcpy_chk.cpp
index b95a0d7..2839795 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 prevented",
+        __fortify_chk_fail("memcpy prevented write past end of buffer",
                              BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__memmove_chk.cpp b/libc/bionic/__memmove_chk.cpp
index 5f51139..b653968 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 prevented",
+        __fortify_chk_fail("memmove prevented write past end of buffer",
                              BIONIC_EVENT_MEMMOVE_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__memset_chk.cpp b/libc/bionic/__memset_chk.cpp
index 04c772b..49a1548 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 prevented",
+        __fortify_chk_fail("memset prevented write past end of buffer",
                              BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__recvfrom_chk.cpp b/libc/bionic/__recvfrom_chk.cpp
index 3a9dab6..0c042cc 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 buffer overflow prevented", 0);
+    __fortify_chk_fail("recvfrom prevented write past end of buffer", 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 37ecfe6..3dda43a 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 prevented",
+            __fortify_chk_fail("strcat prevented write past end of buffer",
                                BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW);
         }
     }
diff --git a/libc/bionic/__strchr_chk.cpp b/libc/bionic/__strchr_chk.cpp
index 87d8893..3982d60 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("strchr buffer overrun prevented", 0);
+      __fortify_chk_fail("strchr prevented read past end of buffer", 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 e92e539..41990f9 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 prevented",
+        __fortify_chk_fail("strcpy prevented write past end of buffer",
                              BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__strlcat_chk.cpp b/libc/bionic/__strlcat_chk.cpp
index 5f97093..32573c2 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 prevented", 0);
+        __fortify_chk_fail("strlcat prevented write past end of buffer", 0);
     }
 
     return strlcat(dest, src, supplied_size);
diff --git a/libc/bionic/__strlcpy_chk.cpp b/libc/bionic/__strlcpy_chk.cpp
index a6877eb..1e482e1 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 prevented", 0);
+        __fortify_chk_fail("strlcpy prevented write past end of buffer", 0);
     }
 
     return strlcpy(dest, src, supplied_size);
diff --git a/libc/bionic/__strlen_chk.cpp b/libc/bionic/__strlen_chk.cpp
index 87be0e6..494f7bf 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 buffer overrun prevented", 0);
+        __fortify_chk_fail("strlen prevented read past end of buffer", 0);
     }
 
     return ret;
diff --git a/libc/bionic/__strncat_chk.cpp b/libc/bionic/__strncat_chk.cpp
index 4f4b327..296217e 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 prevented",
+            __fortify_chk_fail("strncat prevented write past end of buffer",
                                BIONIC_EVENT_STRNCAT_BUFFER_OVERFLOW);
         }
 
diff --git a/libc/bionic/__strncpy_chk.cpp b/libc/bionic/__strncpy_chk.cpp
index d362b34..5e72c2c 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 prevented",
+    __fortify_chk_fail("strncpy prevented write past end of buffer",
                        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 prevented",
+    __fortify_chk_fail("strncpy prevented write past end of buffer",
                        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 buffer overrun prevented", 0);
+      __fortify_chk_fail("strncpy prevented read past end of buffer", 0);
     }
   }
 
diff --git a/libc/bionic/__strrchr_chk.cpp b/libc/bionic/__strrchr_chk.cpp
index 2bdf36a..e6daf8f 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 overrun prevented", 0);
+            __fortify_chk_fail("strrchr prevented read past end of buffer", 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 731f9c5..257cf5e 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 prevented", 0);
+        __fortify_chk_fail("vsnprintf prevented write past end of buffer", 0);
     }
 
     return vsnprintf(dest, supplied_size, format, va);
diff --git a/libc/bionic/__vsprintf_chk.cpp b/libc/bionic/__vsprintf_chk.cpp
index 560f12e..290de9b 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 prevented", 0);
+        __fortify_chk_fail("vsprintf prevented write past end of buffer", 0);
     }
 
     return ret;
