1*4882a593SmuzhiyunFrom 75c3d3cec4f408848f575d6d5e30a95bd6313db0 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Darren Kenny <darren.kenny@oracle.com>
3*4882a593SmuzhiyunDate: Thu, 22 Oct 2020 13:54:06 +0000
4*4882a593SmuzhiyunSubject: [PATCH] gnulib/regcomp: Fix uninitialized token structure
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunThe code is assuming that the value of br_token.constraint was
7*4882a593Smuzhiyuninitialized to zero when it wasn't.
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunWhile some compilers will ensure that, not all do, so it is better to
10*4882a593Smuzhiyunfix this explicitly than leave it to chance.
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunFixes: CID 73749
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunSigned-off-by: Darren Kenny <darren.kenny@oracle.com>
15*4882a593SmuzhiyunReviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
16*4882a593Smuzhiyun[Add changes to generated files]
17*4882a593SmuzhiyunSigned-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
18*4882a593Smuzhiyun---
19*4882a593Smuzhiyun Makefile.in                                             |  1 +
20*4882a593Smuzhiyun conf/Makefile.extra-dist                                |  1 +
21*4882a593Smuzhiyun grub-core/lib/gnulib-patches/fix-uninit-structure.patch | 11 +++++++++++
22*4882a593Smuzhiyun grub-core/lib/gnulib/regcomp.c                          |  2 +-
23*4882a593Smuzhiyun 4 files changed, 14 insertions(+), 1 deletion(-)
24*4882a593Smuzhiyun create mode 100644 grub-core/lib/gnulib-patches/fix-uninit-structure.patch
25*4882a593Smuzhiyun
26*4882a593Smuzhiyundiff --git a/Makefile.in b/Makefile.in
27*4882a593Smuzhiyunindex e6b287b..d58a7d7 100644
28*4882a593Smuzhiyun--- a/Makefile.in
29*4882a593Smuzhiyun+++ b/Makefile.in
30*4882a593Smuzhiyun@@ -2742,6 +2742,7 @@ EXTRA_DIST = autogen.sh geninit.sh gentpl.py Makefile.util.def \
31*4882a593Smuzhiyun 	grub-core/gensyminfo.sh.in grub-core/gensymlist.sh \
32*4882a593Smuzhiyun 	grub-core/genemuinit.sh grub-core/genemuinitheader.sh \
33*4882a593Smuzhiyun 	grub-core/lib/gnulib-patches/fix-null-deref.patch \
34*4882a593Smuzhiyun+	grub-core/lib/gnulib-patches/fix-uninit-structure.patch \
35*4882a593Smuzhiyun 	grub-core/lib/gnulib-patches/fix-unused-value.patch \
36*4882a593Smuzhiyun 	grub-core/lib/gnulib-patches/fix-width.patch \
37*4882a593Smuzhiyun 	grub-core/lib/gnulib-patches/no-abort.patch \
38*4882a593Smuzhiyundiff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist
39*4882a593Smuzhiyunindex 9b01152..9e55458 100644
40*4882a593Smuzhiyun--- a/conf/Makefile.extra-dist
41*4882a593Smuzhiyun+++ b/conf/Makefile.extra-dist
42*4882a593Smuzhiyun@@ -29,6 +29,7 @@ EXTRA_DIST += grub-core/genemuinit.sh
43*4882a593Smuzhiyun EXTRA_DIST += grub-core/genemuinitheader.sh
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-deref.patch
46*4882a593Smuzhiyun+EXTRA_DIST += grub-core/lib/gnulib-patches/fix-uninit-structure.patch
47*4882a593Smuzhiyun EXTRA_DIST += grub-core/lib/gnulib-patches/fix-unused-value.patch
48*4882a593Smuzhiyun EXTRA_DIST += grub-core/lib/gnulib-patches/fix-width.patch
49*4882a593Smuzhiyun EXTRA_DIST += grub-core/lib/gnulib-patches/no-abort.patch
50*4882a593Smuzhiyundiff --git a/grub-core/lib/gnulib-patches/fix-uninit-structure.patch b/grub-core/lib/gnulib-patches/fix-uninit-structure.patch
51*4882a593Smuzhiyunnew file mode 100644
52*4882a593Smuzhiyunindex 0000000..7b4d9f6
53*4882a593Smuzhiyun--- /dev/null
54*4882a593Smuzhiyun+++ b/grub-core/lib/gnulib-patches/fix-uninit-structure.patch
55*4882a593Smuzhiyun@@ -0,0 +1,11 @@
56*4882a593Smuzhiyun+--- a/lib/regcomp.c	2020-10-22 13:49:06.770168928 +0000
57*4882a593Smuzhiyun++++ b/lib/regcomp.c	2020-10-22 13:50:37.026528298 +0000
58*4882a593Smuzhiyun+@@ -3662,7 +3662,7 @@
59*4882a593Smuzhiyun+   Idx alloc = 0;
60*4882a593Smuzhiyun+ #endif /* not RE_ENABLE_I18N */
61*4882a593Smuzhiyun+   reg_errcode_t ret;
62*4882a593Smuzhiyun+-  re_token_t br_token;
63*4882a593Smuzhiyun++  re_token_t br_token = {0};
64*4882a593Smuzhiyun+   bin_tree_t *tree;
65*4882a593Smuzhiyun+
66*4882a593Smuzhiyun+   sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
67*4882a593Smuzhiyundiff --git a/grub-core/lib/gnulib/regcomp.c b/grub-core/lib/gnulib/regcomp.c
68*4882a593Smuzhiyunindex fe7dfcb..2545d3e 100644
69*4882a593Smuzhiyun--- a/grub-core/lib/gnulib/regcomp.c
70*4882a593Smuzhiyun+++ b/grub-core/lib/gnulib/regcomp.c
71*4882a593Smuzhiyun@@ -3662,7 +3662,7 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
72*4882a593Smuzhiyun   Idx alloc = 0;
73*4882a593Smuzhiyun #endif /* not RE_ENABLE_I18N */
74*4882a593Smuzhiyun   reg_errcode_t ret;
75*4882a593Smuzhiyun-  re_token_t br_token;
76*4882a593Smuzhiyun+  re_token_t br_token = {0};
77*4882a593Smuzhiyun   bin_tree_t *tree;
78*4882a593Smuzhiyun
79*4882a593Smuzhiyun   sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
80*4882a593Smuzhiyun--
81*4882a593Smuzhiyun2.14.2
82*4882a593Smuzhiyun
83