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. -c _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"