]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
cutils: squelch compiler warnings with custom paths
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 5 Oct 2023 12:48:50 +0000 (14:48 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Sun, 8 Oct 2023 19:08:27 +0000 (21:08 +0200)
Setting --bindir= to an absolute path that is shorter than the
prefix causes GCC to complain about array accesses out of bounds.
The code however is safe, so disable the warning and explain why
we are doing so.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
util/cutils.c

index 25373198adc5f0ea837cdb9f32979585f74a1c04..3856e304c52299aa2f31d14038182682062e5d60 100644 (file)
@@ -1012,8 +1012,17 @@ int qemu_pstrcmp0(const char **str1, const char **str2)
 static inline bool starts_with_prefix(const char *dir)
 {
     size_t prefix_len = strlen(CONFIG_PREFIX);
+    /*
+     * dir[prefix_len] is only accessed if the length of dir is
+     * >= prefix_len, so no out of bounds access is possible.
+     */
+#pragma GCC diagnostic push
+#if !defined(__clang__) || __has_warning("-Warray-bounds=")
+#pragma GCC diagnostic ignored "-Warray-bounds="
+#endif
     return !memcmp(dir, CONFIG_PREFIX, prefix_len) &&
         (!dir[prefix_len] || G_IS_DIR_SEPARATOR(dir[prefix_len]));
+#pragma GCC diagnostic pop
 }
 
 /* Return the next path component in dir, and store its length in *p_len.  */