fortify: Improve buffer overflow reporting
[sfrench/cifs-2.6.git] / lib / string_helpers.c
index 5e53d42e32bb427c8575ca1e021c3847424cc82a..6bbafd6a10d92b634a3159adb1738b98b3ab9524 100644 (file)
@@ -1016,20 +1016,21 @@ static const char * const fortify_func_name[] = {
 #undef  MAKE_FORTIFY_FUNC_NAME
 };
 
-void __fortify_report(const u8 reason)
+void __fortify_report(const u8 reason, const size_t avail, const size_t size)
 {
        const u8 func = FORTIFY_REASON_FUNC(reason);
        const bool write = FORTIFY_REASON_DIR(reason);
        const char *name;
 
        name = fortify_func_name[umin(func, FORTIFY_FUNC_UNKNOWN)];
-       WARN(1, "%s: detected buffer %s overflow\n", name, str_read_write(!write));
+       WARN(1, "%s: detected buffer overflow: %zu byte %s of buffer size %zu\n",
+                name, size, str_read_write(!write), avail);
 }
 EXPORT_SYMBOL(__fortify_report);
 
-void __fortify_panic(const u8 reason)
+void __fortify_panic(const u8 reason, const size_t avail, const size_t size)
 {
-       __fortify_report(reason);
+       __fortify_report(reason, avail, size);
        BUG();
 }
 EXPORT_SYMBOL(__fortify_panic);