rem: soap->dime.list = soap->dime.first; soap->dime.first = NULL; soap->dime.last = NULL;
add: soap->mime.boundary = NULL;
context: soap_end_recv(struct soap *soap){ soap->part = SOAP_END;#ifndef WITH_LEANER  if ((soap->mode & SOAP_ENC_MIME) && soap_getmime(soap))    return soap->error;  soap->mime.list = soap->mime.first;  soap->mime.first = NULL;  soap->mime.last = NULL;  soap->dime.list = soap->dime.first;  soap->dime.first = NULL;  soap->dime.last = NULL;#endif  DBGLOG(TEST,SOAP_MESSAGE(fdebug, "End of receive message ok\n"));#ifdef WITH_ZLIB  if (soap->mode & SOAP_ENC_ZLIB)  { soap->mode &= ~SOAP_ENC_ZLIB;    memcpy(soap->buf, soap->z_buf, SOAP_BUFLEN);    soap->bufidx = (char*)soap->d_stream.next_in - soap->z_buf;    soap->buflen = soap->z_buflen;    soap->zlib_state = SOAP_ZLIB_NONE;    if (inflateEnd(&soap->d_stream) != Z_OK)      return soap->error = SOAP_ZLIB_ERROR;#ifdef WITH_GZIP    if (soap->zlib_in == SOAP_ZLIB_GZIP)    { soap_wchar c;      short i;      for (i = 0; i < 8; i++)      { if ((int)(c = soap_getchar(soap)) == EOF)          return soap->error = SOAP_EOF;        soap->z_buf[i] = (char)c;      }      if (soap->z_crc != ((uLong)(unsigned char)soap->z_buf[0] | ((uLong)(unsigned char)soap->z_buf[1] << 8) | ((uLong)(unsigned char)soap->z_buf[2] << 16) | ((uLong)(unsigned char)soap->z_buf[3] << 24)))      { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Gzip error: crc check failed, message corrupted? (crc32=%lu)\n", (unsigned long)soap->z_crc));        return soap->error = SOAP_ZLIB_ERROR;      }      if (soap->d_stream.total_out != ((uLong)(unsigned char)soap->z_buf[4] | ((uLong)(unsigned char)soap->z_buf[5] << 8) | ((uLong)(unsigned char)soap->z_buf[6] << 16) | ((uLong)(unsigned char)soap->z_buf[7] << 24)))      { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Gzip error: incorrect message length\n"));        return soap->error = SOAP_ZLIB_ERROR;      }    }#endif  }#endif  if ((soap->mode & SOAP_IO) == SOAP_IO_CHUNK)    while ((int)soap_getchar(soap) != EOF) /* advance to last chunk */      ;  if (soap->fdisconnect && (soap->error = soap->fdisconnect(soap)))    return soap->error;#ifndef WITH_NOIDREF  return soap_resolve(soap);#else  return SOAP_OK;#endif}