diff options
Diffstat (limited to 'iconv')
-rw-r--r-- | iconv/gconv.c | 6 | ||||
-rw-r--r-- | iconv/gconv_simple.c | 6 |
2 files changed, 7 insertions, 5 deletions
diff --git a/iconv/gconv.c b/iconv/gconv.c index 88d76056c8..7cb78694e0 100644 --- a/iconv/gconv.c +++ b/iconv/gconv.c @@ -1,6 +1,6 @@ /* Convert characters in input buffer using conversion descriptor to output buffer. - Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -31,12 +31,14 @@ __gconv (__gconv_t cd, const unsigned char **inbuf, const unsigned char *inbufend, unsigned char **outbuf, unsigned char *outbufend, size_t *irreversible) { - size_t last_step = cd->__nsteps - 1; + size_t last_step; int result; if (cd == (__gconv_t) -1L) return __GCONV_ILLEGAL_DESCRIPTOR; + last_step = cd->__nsteps - 1; + assert (irreversible != NULL); *irreversible = 0; diff --git a/iconv/gconv_simple.c b/iconv/gconv_simple.c index 8064bd9f8a..25914d9b5d 100644 --- a/iconv/gconv_simple.c +++ b/iconv/gconv_simple.c @@ -135,10 +135,10 @@ internal_ucs4_loop_unaligned (struct __gconv_step *step, # endif /* Determine the status. */ - if (*outptrp + 4 > outend) - result = __GCONV_FULL_OUTPUT; - else if (*inptrp == inend) + if (*inptrp == inend) result = __GCONV_EMPTY_INPUT; + else if (*outptrp + 4 > outend) + result = __GCONV_FULL_OUTPUT; else result = __GCONV_INCOMPLETE_INPUT; |