From: Ulrich Drepper Date: Fri, 26 Nov 1999 06:15:12 +0000 (+0000) Subject: (__gconv): Always initialize cd->__data[last_step].__outbuf and X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a9e711dde7934f7907ac318538551900cd412190;p=thirdparty%2Fglibc.git (__gconv): Always initialize cd->__data[last_step].__outbuf and cd->__data[last_step].__outbufend. --- diff --git a/iconv/gconv.c b/iconv/gconv.c index 14398e2e375..16a6b8fb94e 100644 --- a/iconv/gconv.c +++ b/iconv/gconv.c @@ -27,8 +27,9 @@ int internal_function -__gconv (gconv_t cd, const unsigned char **inbuf, const unsigned char *inbufend, - unsigned char **outbuf, unsigned char *outbufend, size_t *converted) +__gconv (gconv_t cd, const unsigned char **inbuf, + const unsigned char *inbufend, unsigned char **outbuf, + unsigned char *outbufend, size_t *converted) { size_t last_step = cd->nsteps - 1; int result; @@ -39,6 +40,9 @@ __gconv (gconv_t cd, const unsigned char **inbuf, const unsigned char *inbufend, assert (converted != NULL); *converted = 0; + cd->data[last_step].outbuf = *outbuf; + cd->data[last_step].outbufend = outbufend; + if (inbuf == NULL || *inbuf == NULL) /* We just flush. */ result = _CALL_DL_FCT (cd->steps->fct, @@ -48,8 +52,6 @@ __gconv (gconv_t cd, const unsigned char **inbuf, const unsigned char *inbufend, const unsigned char *last_start; assert (outbuf != NULL && *outbuf != NULL); - cd->data[last_step].outbuf = *outbuf; - cd->data[last_step].outbufend = outbufend; do {