From 26ef5a951e8111d360586f1169b8fac2dc2cb613 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Tue, 4 Feb 2025 11:10:11 -0500 Subject: [PATCH] build: Enable -Wstringop-overflow and -D_FORTIFY_SOURCE=3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This enables -Wstringop-overflow compiler warnings: 'Warn for calls to string manipulation functions such as "memcpy" and "strcpy" that are determined to overflow the destination buffer.' Along with -D_FORTIFY_SOURCE=3 so the errors like the following can be captured: In function ‘read’, inlined from ‘serial_read_callback’ at emulator/serial.c:90:8: /usr/include/bits/unistd.h:32:10: error: ‘__read_alias’ specified size between 18446744073709490177 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Werror=stringop-overflow=] 32 | return __glibc_fortify (read, __nbytes, sizeof (char), | ^~~~~~~~~~~~~~~ --- acinclude.m4 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index 4b73a5bfc..9f2dc302e 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -61,9 +61,11 @@ AC_DEFUN([COMPILER_FLAGS], [ with_cflags="$with_cflags -Wcast-align" with_cflags="$with_cflags -Wswitch-enum" with_cflags="$with_cflags -Wformat -Wformat-security" + with_cflags="$with_cflags -Wstringop-overflow" with_cflags="$with_cflags -DG_DISABLE_DEPRECATED" with_cflags="$with_cflags -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_28" with_cflags="$with_cflags -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32" + with_cflags="$with_cflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3" fi AC_SUBST([WARNING_CFLAGS], $with_cflags) ]) -- 2.47.3