Subject: pkg/18422: distribute:write_index() is called too early.
To: None <email@example.com>
From: None <firstname.lastname@example.org>
Date: 09/26/2002 13:03:06
>Synopsis: pkgsrc/mail/distribute: write_index() is called too early.
>Arrival-Date: Wed Sep 25 21:04:00 PDT 2002
>Originator: enami tsugutomo
>Release: NetBSD 1.6G
System: NetBSD parity-error.sm.sony.co.jp 1.6G NetBSD 1.6G (PARITY_ERROR.UP.PROF) #315: Wed Sep 4 11:02:52 JST 2002 email@example.com:/a/compile/PARITY_ERROR.UP.PROF i386
The function write_index() in distribute.c (in pkgsrc/mail/distribute)
uses global variable `bodysum' but is called before the check sum
is calculated. As a result, check sum written in INDEX file is always
zero and the program `archive' may barf as follows:
Sep 26 11:34:47 email0 archive: body checksum mismatch: incoming: 1228
UTSL is easier way.
% make patch # make sure patch.20.gz is applied.
% view work.i386/distribute-pl19/distribute.c
and see how bodysum is updated and write_index() is called.
Call the write_index after the sum is calclated (but I'm not sure
the origianl intention of the change in patch.20.gz).