74 lines
2.6 KiB
Diff
74 lines
2.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Darren Kenny <darren.kenny@oracle.com>
|
|
Date: Wed, 21 Oct 2020 14:41:27 +0000
|
|
Subject: [PATCH] gnulib/regexec: Resolve unused variable
|
|
|
|
This is a really minor issue where a variable is being assigned to but
|
|
not checked before it is overwritten again.
|
|
|
|
The reason for this issue is that we are not building with DEBUG set and
|
|
this in turn means that the assert() that reads the value of the
|
|
variable match_last is being processed out.
|
|
|
|
The solution, move the assignment to match_last in to an ifdef DEBUG too.
|
|
|
|
Fixes: CID 292459
|
|
|
|
Signed-off-by: Darren Kenny <darren.kenny@oracle.com>
|
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
|
---
|
|
grub-core/gnulib/regexec.c | 4 ++++
|
|
conf/Makefile.extra-dist | 1 +
|
|
grub-core/gnulib-fix-unused-value.patch | 14 ++++++++++++++
|
|
3 files changed, 19 insertions(+)
|
|
create mode 100644 grub-core/gnulib-fix-unused-value.patch
|
|
|
|
diff --git a/grub-core/gnulib/regexec.c b/grub-core/gnulib/regexec.c
|
|
index a7776f088..9264f2628 100644
|
|
--- a/grub-core/gnulib/regexec.c
|
|
+++ b/grub-core/gnulib/regexec.c
|
|
@@ -879,7 +879,11 @@ re_search_internal (const regex_t *preg,
|
|
break;
|
|
if (BE (err != REG_NOMATCH, 0))
|
|
goto free_return;
|
|
+#ifdef DEBUG
|
|
+ /* Only used for assertion below when DEBUG is set, otherwise
|
|
+ it will be over-written when we loop around. */
|
|
match_last = REG_MISSING;
|
|
+#endif
|
|
}
|
|
else
|
|
break; /* We found a match. */
|
|
diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist
|
|
index 5946ec24a..b53fe6dfd 100644
|
|
--- a/conf/Makefile.extra-dist
|
|
+++ b/conf/Makefile.extra-dist
|
|
@@ -31,6 +31,7 @@ EXTRA_DIST += grub-core/genemuinit.sh
|
|
EXTRA_DIST += grub-core/genemuinitheader.sh
|
|
|
|
EXTRA_DIST += grub-core/gnulib-fix-null-deref.diff
|
|
+EXTRA_DIST += grub-core/gnulib-fix-unused-value.patch
|
|
EXTRA_DIST += grub-core/gnulib-fix-width.diff
|
|
EXTRA_DIST += grub-core/gnulib-no-abort.diff
|
|
EXTRA_DIST += grub-core/gnulib-no-gets.diff
|
|
diff --git a/grub-core/gnulib-fix-unused-value.patch b/grub-core/gnulib-fix-unused-value.patch
|
|
new file mode 100644
|
|
index 000000000..452a87329
|
|
--- /dev/null
|
|
+++ b/grub-core/gnulib-fix-unused-value.patch
|
|
@@ -0,0 +1,14 @@
|
|
+--- grub-core/gnulib/regexec.c 2020-10-21 14:25:35.310195912 +0000
|
|
++++ grub-core/gnulib/regexec.c 2020-10-21 14:32:07.961765604 +0000
|
|
+@@ -828,7 +828,11 @@
|
|
+ break;
|
|
+ if (BE (err != REG_NOMATCH, 0))
|
|
+ goto free_return;
|
|
++#ifdef DEBUG
|
|
++ /* Only used for assertion below when DEBUG is set, otherwise
|
|
++ it will be over-written when we loop around. */
|
|
+ match_last = REG_MISSING;
|
|
++#endif
|
|
+ }
|
|
+ else
|
|
+ break; /* We found a match. */
|