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.
This commit is contained in:
Stefan Liebler 2019-06-26 08:34:25 +02:00
parent c89e669a70
commit 9e6a7d9c17
2 changed files with 7 additions and 1 deletions

View File

@ -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.

View File

@ -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. */