There is a testcase to test the values larger than 'int' but smaller
than 'long'. However, for some architectures, 'long' and 'int' are the
same, and the compiler may issue a warning like this:
grub-core/tests/asn1/tests/Test_overflow.c:48:50: error: left shift of negative
value [-Werror=shift-negative-value]
unsigned long num = ((long) GRUB_UINT_MAX) << 2;
^~
To avoid unnecessary error the testcase is enabled only when
GRUB_LONG_MAX is larger than GRUB_INT_MAX.
Signed-off-by: Daniel Axtens <[email protected]>
Signed-off-by: Gary Lin <[email protected]>
Reviewed-by: Daniel Kiper <[email protected]>
---
...-the-testcase-only-when-GRUB_LONG_MA.patch | 48 +++++++++++++++++++
1 file changed, 48 insertions(+)
create mode 100644
grub-core/lib/libtasn1-patches/0013-asn1_test-enable-the-testcase-only-when-GRUB_LONG_MA.patch
diff --git
a/grub-core/lib/libtasn1-patches/0013-asn1_test-enable-the-testcase-only-when-GRUB_LONG_MA.patch
b/grub-core/lib/libtasn1-patches/0013-asn1_test-enable-the-testcase-only-when-GRUB_LONG_MA.patch
new file mode 100644
index 000000000..a81a350c9
--- /dev/null
+++
b/grub-core/lib/libtasn1-patches/0013-asn1_test-enable-the-testcase-only-when-GRUB_LONG_MA.patch
@@ -0,0 +1,48 @@
+From 6d308d9053447dcc003a9ca740c47c00932d3569 Mon Sep 17 00:00:00 2001
+From: Gary Lin <[email protected]>
+Date: Mon, 7 Oct 2024 11:33:19 +0800
+Subject: [PATCH 13/13] asn1_test: enable the testcase only when GRUB_LONG_MAX
+ is larger than GRUB_INT_MAX
+
+There is a testcase to test the values larger than 'int' but smaller
+than 'long'. However, for some architectures, 'long' and 'int' are the
+same, and the compiler may issue a warning like this:
+
+grub-core/tests/asn1/tests/Test_overflow.c:48:50: error: left shift of
negative value [-Werror=shift-negative-value]
+ unsigned long num = ((long) GRUB_UINT_MAX) << 2;
+ ^~
+
+To avoid unnecessary error the testcase is enabled only when
+GRUB_LONG_MAX is larger than GRUB_INT_MAX.
+
+Signed-off-by: Daniel Axtens <[email protected]>
+Signed-off-by: Gary Lin <[email protected]>
+Reviewed-by: Daniel Kiper <[email protected]>
+---
+ grub-core/tests/asn1/tests/Test_overflow.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/grub-core/tests/asn1/tests/Test_overflow.c
b/grub-core/tests/asn1/tests/Test_overflow.c
+index 65843abf6..fdeff5634 100644
+--- a/grub-core/tests/asn1/tests/Test_overflow.c
++++ b/grub-core/tests/asn1/tests/Test_overflow.c
+@@ -43,7 +43,7 @@ test_overflow (void)
+
+ /* Test that values larger than int but smaller than long are
+ rejected. This limitation was introduced with libtasn1 2.12. */
+- if (GRUB_LONG_MAX > GRUB_INT_MAX)
++#if (GRUB_LONG_MAX > GRUB_INT_MAX)
+ {
+ unsigned long num = ((long) GRUB_UINT_MAX) << 2;
+ unsigned char der[20];
+@@ -61,6 +61,7 @@ test_overflow (void)
+ return 1;
+ }
+ }
++#endif
+
+ /* Test that values larger than would fit in the input string are
+ rejected. This problem was fixed in libtasn1 2.12. */
+--
+2.43.0
+
--
2.43.0
_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel