This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
[glibc] Fix build warnings in locale/programs/ld-ctype.c
- From: Stefan Liebler <stli at sourceware dot org>
- To: glibc-cvs at sourceware dot org
- Date: 26 Jun 2019 10:32:22 -0000
- Subject: [glibc] Fix build warnings in locale/programs/ld-ctype.c
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9e6a7d9c179650478c8c34b8cf81a7699dc2ffe3
commit 9e6a7d9c179650478c8c34b8cf81a7699dc2ffe3
Author: Stefan Liebler <stli@linux.ibm.com>
Date: Wed Jun 26 08:34:25 2019 +0200
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.
Diff:
---
ChangeLog | 5 +++++
locale/programs/ld-ctype.c | 3 ++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 7b7bccd..adc58e4 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 e610592..cfc9c43 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. */