mirror of
https://git.proxmox.com/git/grub2
synced 2025-10-19 01:36:42 +00:00

Also needs backports from upstream commits to fix warnings/errors from using gcc 12: be8eb0eed util/mkimage: Fix dangling pointer may be used error acffb8148 build: Fix -Werror=array-bounds array subscript 0 is outside array bounds 3ce13d974 lib/reed_solomon: Fix array subscript 0 is outside array bounds
47 lines
1.4 KiB
Diff
47 lines
1.4 KiB
Diff
commit 3ce13d974b887338ae972c79b41ff6fc0eee6388
|
|
Author: Michael Chang <mchang@suse.com>
|
|
Date: Mon Mar 28 15:00:54 2022 +0800
|
|
|
|
lib/reed_solomon: Fix array subscript 0 is outside array bounds
|
|
|
|
The grub_absolute_pointer() is a compound expression that can only work
|
|
within a function. We are out of luck here when the pointer variables
|
|
require global definition due to ATTRIBUTE_TEXT that have to use fully
|
|
initialized global definition because of the way linkers work.
|
|
|
|
static gf_single_t * const gf_powx ATTRIBUTE_TEXT = (void *) 0x100000;
|
|
|
|
For the reason given above, use GCC diagnostic pragmas to suppress the
|
|
array-bounds warning.
|
|
|
|
Signed-off-by: Michael Chang <mchang@suse.com>
|
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
|
|
|
diff --git a/grub-core/lib/reed_solomon.c b/grub-core/lib/reed_solomon.c
|
|
index 82779a296..562bd2e3e 100644
|
|
--- a/grub-core/lib/reed_solomon.c
|
|
+++ b/grub-core/lib/reed_solomon.c
|
|
@@ -102,6 +102,11 @@ static gf_single_t errvals[256];
|
|
static gf_single_t eqstat[65536 + 256];
|
|
#endif
|
|
|
|
+#if __GNUC__ == 12
|
|
+#pragma GCC diagnostic push
|
|
+#pragma GCC diagnostic ignored "-Warray-bounds"
|
|
+#endif
|
|
+
|
|
static gf_single_t
|
|
gf_mul (gf_single_t a, gf_single_t b)
|
|
{
|
|
@@ -319,6 +324,10 @@ decode_block (gf_single_t *ptr, grub_size_t s,
|
|
}
|
|
}
|
|
|
|
+#if __GNUC__ == 12
|
|
+#pragma GCC diagnostic pop
|
|
+#endif
|
|
+
|
|
#if !defined (STANDALONE)
|
|
static void
|
|
encode_block (gf_single_t *ptr, grub_size_t s,
|