[tex-live] Re: [tex-implementors] Re: bug in etex

Olaf Weber olaf at infovore.xs4all.nl
Tue Jul 13 19:29:58 CEST 2004


Philip TAYLOR writes:
> Peter Breitenlohner wrote:
>> On Tue, 13 Jul 2004, Peter Breitenlohner wrote:

>>> ..........
>>> Could any one test this on a non-linux Unix system and report the
>>> outcome?

>> Thanks to all the testers; here a short summary:
>> Petr Sojka, Martin Schroeder, and Apostolos Syropoulos reported a
>> Segmentation Fault (or Bus Error) on different SunOS and IRIX systems,
>> all using (different versions of) Web2C.
>> Phil Taylor reported no such problem with the VMS Pascal
>> implementation.

> Just by way of clarification, here are the command-line qualifiers
> for the Pascal incantation :

> 	"/noopt /check=all /float=g_float /list /debug"

> Of these, "/Check=all" is significant (all array accesses checked).

What is null in etex in the Pascal version?  In web2c it is defined as
min_halfword, which is a large negative number (-@"FFFFFFF).  However,
in the original tex.web, min_halfword equals 0.  So the reason the
Pascal version doesn't trap may be that an invalid (null) cur_ptr,
is still a valid array index, in contrast to web2c.

The web2c sources contain a small change file etex.fix which contains
two fixes for what (as far as we've been able to determine) are
definitely bugs in etex.  One of these is a confusion of null and 0
involving cur_ptr.

% Bugfixes for etex.ch version 2.1
% Public Domain.

@x l.1163
    begin cur_val:=int_val;
@y
    begin cur_val_level:=int_val;
@z

@x l.5503
  if cur_ptr<>0 then
@y
  if cur_ptr<>null then
@z

-- 
Olaf Weber

               (This space left blank for technical reasons.)



More information about the tex-live mailing list