From 43b44bc5ad877a2244750ba721142cae0a35d20b Mon Sep 17 00:00:00 2001 From: Jonathan Larmour Date: Mon, 11 Jun 2001 17:21:18 +0000 Subject: [PATCH] * libc/stdlib/mbtowc_r.c (_mbtowc_r): Avoid dereferencing NULL pointer. --- newlib/ChangeLog | 5 +++++ newlib/libc/stdlib/mbtowc_r.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/newlib/ChangeLog b/newlib/ChangeLog index d83c52fdd..81b62e48a 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,8 @@ +2001-06-08 Jonathan Larmour + + * libc/stdlib/mbtowc_r.c (_mbtowc_r): Avoid dereferencing + NULL pointer. + 2001-05-28 Nick Clifton * libc/stdio/vfprintf.c (_VFPRINTF_R): Handle printf ("%#.0o",0) diff --git a/newlib/libc/stdlib/mbtowc_r.c b/newlib/libc/stdlib/mbtowc_r.c index 7d718c8b0..4bf302359 100644 --- a/newlib/libc/stdlib/mbtowc_r.c +++ b/newlib/libc/stdlib/mbtowc_r.c @@ -68,9 +68,10 @@ _DEFUN (_mbtowc_r, (r, pwc, s, n, state), { /* fall-through */ } else if (!strcmp (r->_current_locale, "C-SJIS")) { - int char1 = *t; + int char1; if (s == NULL) return 0; /* not state-dependent */ + char1 = *t; if (_issjis1 (char1)) { int char2 = t[1]; @@ -87,9 +88,10 @@ _DEFUN (_mbtowc_r, (r, pwc, s, n, state), } else if (!strcmp (r->_current_locale, "C-EUCJP")) { - int char1 = *t; + int char1; if (s == NULL) return 0; /* not state-dependent */ + char1 = *t; if (_iseucjp (char1)) { int char2 = t[1];