Thank you Pete for reporting these problems and for your nice words!

I decided to fix utf8.c in a slightly different (but equivalent) way, and also fixed the body->location cleanup problem too. See attached diffs.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.
*** mail.c      2004/04/08 23:05:05     1.52
--- mail.c      2004/04/18 16:16:03
***************
*** 10,16 ****
   *            Internet: [EMAIL PROTECTED]
   *
   * Date:      22 November 1989
!  * Last Edited:       8 April 2004
   *
   * The IMAP toolkit provided in this Distribution is
   * Copyright 1988-2004 University of Washington.
--- 10,16 ----
   *            Internet: [EMAIL PROTECTED]
   *
   * Date:      22 November 1989
!  * Last Edited:       18 April 2004
   *
   * The IMAP toolkit provided in this Distribution is
   * Copyright 1988-2004 University of Washington.
***************
*** 5504,5509 ****
--- 5504,5510 ----
    if (body->disposition.parameter)
      mail_free_body_parameter (&body->disposition.parameter);
    if (body->language) mail_free_stringlist (&body->language);
+   if (body->location) fs_give ((void **) &body->location);
    if (body->mime.text.data) fs_give ((void **) &body->mime.text.data);
    if (body->contents.text.data) fs_give ((void **) &body->contents.text.data);
    if (body->md5) fs_give ((void **) &body->md5);
*** utf8.c      2004/03/16 23:56:02     1.14
--- utf8.c      2004/04/18 16:16:08
***************
*** 10,16 ****
   *            Internet: [EMAIL PROTECTED]
   *
   * Date:      11 June 1997
!  * Last Edited:       15 March 2004
   * 
   * The IMAP toolkit provided in this Distribution is
   * Copyright 1988-2004 University of Washington.
--- 10,16 ----
   *            Internet: [EMAIL PROTECTED]
   *
   * Date:      11 June 1997
!  * Last Edited:       18 April 2004
   * 
   * The IMAP toolkit provided in this Distribution is
   * Copyright 1988-2004 University of Washington.
***************
*** 376,382 ****
        break;
      case CT_1BYTE:            /* 1 byte ASCII + table 0x80-0xff */
        for (tab = (unsigned short *) cs->tab,i = 128; i < 256; i++)
!       if (tab[i] != UBOGON) rmap[tab[i]] = (unsigned short) i;
        break;
      case CT_1BYTE8:           /* 1 byte table 0x00 - 0xff */
        for (tab = (unsigned short *) cs->tab,i = 0; i < 256; i++)
--- 376,383 ----
        break;
      case CT_1BYTE:            /* 1 byte ASCII + table 0x80-0xff */
        for (tab = (unsigned short *) cs->tab,i = 128; i < 256; i++)
!       if (tab[i & BITS7] != UBOGON) rmap[tab[i & BITS7]] =
!         (unsigned short) i;
        break;
      case CT_1BYTE8:           /* 1 byte table 0x00 - 0xff */
        for (tab = (unsigned short *) cs->tab,i = 0; i < 256; i++)

Reply via email to