aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.ibm.com>2019-06-26 08:34:25 +0200
committerStefan Liebler <stli@linux.ibm.com>2019-06-26 08:34:25 +0200
commit9e6a7d9c179650478c8c34b8cf81a7699dc2ffe3 (patch)
tree2eca6d9ea70b431da63855e4dbba4f7a09b04713
parentc89e669a70f28389897d0283cc8cb71e8068aaae (diff)
downloadglibc-9e6a7d9c179650478c8c34b8cf81a7699dc2ffe3.tar
glibc-9e6a7d9c179650478c8c34b8cf81a7699dc2ffe3.tar.gz
glibc-9e6a7d9c179650478c8c34b8cf81a7699dc2ffe3.tar.bz2
glibc-9e6a7d9c179650478c8c34b8cf81a7699dc2ffe3.zip
Fix build warnings in locale/programs/ld-ctype.c
This patch fixes the gcc warnings seen with gcc 9 -march>=z13 on s390x: programs/ld-ctype.c: In function ‘ctype_read’: programs/ld-ctype.c:1392:13: error: ‘wch’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 1392 | uint32_t wch; | ^~~ programs/ld-ctype.c:1401:7: error: ‘seq’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 1401 | if (seq != NULL && seq->nbytes == 1) | ^ programs/ld-ctype.c:1391:20: note: ‘seq’ was declared here 1391 | struct charseq *seq; | ^~~ Both seq and wch are uninitialized if get_character fails. Thus we are now returning with an error. ChangeLog: * locale/programs/ld-ctype.c (charclass_symbolic_ellipsis): Return error if get_character fails.
-rw-r--r--ChangeLog5
-rw-r--r--locale/programs/ld-ctype.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 7b7bccde4c..adc58e4a14 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-06-26 Stefan Liebler <stli@linux.ibm.com>
+
+ * locale/programs/ld-ctype.c (charclass_symbolic_ellipsis):
+ Return error if get_character fails.
+
2019-06-25 Stefan Liebler <stli@linux.ibm.com>
* sysdeps/s390/fpu/libm-test-ulps: Regenerated.
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index e6105928da..cfc9c43fd5 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -1396,7 +1396,8 @@ charclass_symbolic_ellipsis (struct linereader *ldfile,
(int) (now->val.str.lenmb - (cp - last_str)),
from);
- get_character (now, charmap, repertoire, &seq, &wch);
+ if (get_character (now, charmap, repertoire, &seq, &wch))
+ goto invalid_range;
if (seq != NULL && seq->nbytes == 1)
/* Yep, we can store information about this byte sequence. */