aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-07-07 06:05:09 +0000
committerUlrich Drepper <drepper@redhat.com>2000-07-07 06:05:09 +0000
commitca4447d63456122e0f046379351f8ff2e2ddc549 (patch)
treef0033dfe844beeecda319f1012a1584f27d1f23e
parent199d6eb060b474ad81bf24dd9ae53d99d5646b9d (diff)
downloadglibc-ca4447d63456122e0f046379351f8ff2e2ddc549.tar
glibc-ca4447d63456122e0f046379351f8ff2e2ddc549.tar.gz
glibc-ca4447d63456122e0f046379351f8ff2e2ddc549.tar.bz2
glibc-ca4447d63456122e0f046379351f8ff2e2ddc549.zip
Update.
* stdio-common/vfprintf.c (process_string_arg): Check result of wcrtomb call and bail out if it failed. * configure.in: Fix CFLAGS-memprofstat.c definition after
-rw-r--r--ChangeLog5
-rw-r--r--stdio-common/vfprintf.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 772a66487b..b4d30e40a2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2000-07-06 Ulrich Drepper <drepper@redhat.com>
+ * stdio-common/vfprintf.c (process_string_arg): Check result of
+ wcrtomb call and bail out if it failed.
+
* malloc/Makefile (test-srcs): Add tst-mtrace.
(distribute): Add tst-mtrace.sh.
Add rule to run tst-mtrace.sh.
@@ -15,7 +18,7 @@
* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise.
- * configure.in: Fix CLAGS-memprofstat.c definition after
+ * configure.in: Fix CFLAGS-memprofstat.c definition after
2000-06-19 change.
Patch by Bradford W. Johnson <bradford@math.umn.edu>.
diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
index 0f35de6644..32ad9d85ab 100644
--- a/stdio-common/vfprintf.c
+++ b/stdio-common/vfprintf.c
@@ -1096,6 +1096,12 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
len = __wcrtomb (buf, (fspec == NULL ? va_arg (ap, wint_t) \
: args_value[fspec->data_arg].pa_wchar), \
&mbstate); \
+ if (len == (size_t) -1) \
+ { \
+ /* Something went wron gduring the conversion. Bail out. */ \
+ done = -1; \
+ goto all_done; \
+ } \
width -= len; \
if (!left) \
PAD (' '); \