diff options
author | Stefan Liebler <stli@linux.ibm.com> | 2019-06-26 08:34:25 +0200 |
---|---|---|
committer | Stefan Liebler <stli@linux.ibm.com> | 2019-06-26 08:34:25 +0200 |
commit | 9e6a7d9c179650478c8c34b8cf81a7699dc2ffe3 (patch) | |
tree | 2eca6d9ea70b431da63855e4dbba4f7a09b04713 | |
parent | c89e669a70f28389897d0283cc8cb71e8068aaae (diff) | |
download | glibc-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-- | ChangeLog | 5 | ||||
-rw-r--r-- | locale/programs/ld-ctype.c | 3 |
2 files changed, 7 insertions, 1 deletions
@@ -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. */ |