Trek
Footenay Courtman
cpf at lasspvax.UUCP
Tue Mar 26 06:55:20 AEST 1985
>
>I am new at this so please bear with me. We have the game trek that was
>distributed with with BSD 4.2. Unfortunately, after playing a few minutes
>we get a segmentation fault.
>
The problem is in the code for events.c. There are three bmove calls
right in a row: bmove(Quad,...), bmove(Event,...), bmove(New,...).
Quad and Event are arrays, New is a structure. The argument for the
third bmove should be &New:
i = (int)bmove((char *)Quad, (char *)i, sizeof (Quad));
i = (int)bmove((char *)Event, (char *)i, sizeof(Event));
i = (int)bmove((char *)&Now, (char *)i, sizeof (Now));
I no longer have the original source, so I can not post a diff. I have
added all the casts myself, so the thing will pass lint. The source
originaly read:
i = bmove(Quad, i, sizeof (Quad));
i = bmove(Event, i, sizeof(Event));
i = bmove(Now, i, sizeof (Now));
Note the absence of the ampersand. Segmention faults are the unsuprising
result of this bug. Note that the README file is unduly scary; I don't
think anything else had to be changed to run on 4.2. I say "I don't think"
because I hacked the code until most of it passed lint.
--
Courtenay Footman arpa: cpf at lnsvax
Newman Lab. of Nuclear Studies usenet: cornell!lnsvax!cpf
Cornell University
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list