On Mon, Oct 27, 2008 at 08:53:46PM +0100, clemens fischer wrote:
> Some of the programs in games/freebsd-games, notably hack and larn, have
> the following problem:  Given the declarations:
>   char *scrollname[] = {     char *potionname[] = {
>   "\0enchant armor",         "\0sleep",
>   "\0enchant weapon",        "\0healing",
>   ...                        ...
>   "\0 "                      "\0 "
>    };                         };
> (in larn/data.c) the code continues to flag the availability of some
> scroll or potion by writing into the first byte of the strings in these
> arrays:
>   for (i=0; i<MAXSCROLL; i++)  scrollname[i][0]=' ';
>   for (i=0; i<MAXPOTION; i++)  potionname[i][0]=' ';
> This leads to SIGSEGV crashes.  I think this came about with the gcc-4xx
> series of our compiler, but I'm not really sure.  I verified that
> scrollname and potionname reside in the writable .data segment.  The
> segv is reproducable.  Does anybody know what is wrong with this code?
> I assume i could arrange for the flagging to be done in a separate data
> structure, but since the programs worked for years this way, I think
> there should be an easier way.

You've already filed a PR on this?  ports/127728.  Though that PR
encapsulates two or 3 different things, which isn't good.

Secondly, there have been complaints about similar issues in the past.


I think the bottom line here is that until someone steps up and actually
volunteers to fix the code, it will remain broken.  (I don't normally
tote this attitude, but in this case it's applicable: this is a
volunteer project!  :-) )

| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |

freebsd-questions@freebsd.org mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to