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