ports/127728: ports/games/freebsd-games doesn't build, and larn(6) segfaults!

Ulrich Spoerlein uspoerlein at gmail.com
Tue Jul 21 17:50:07 UTC 2009


The following reply was made to PR ports/127728; it has been noted by GNATS.

From: Ulrich Spoerlein <uspoerlein at gmail.com>
To: bug-followup at FreeBSD.org, ino-news at spotteswoode.dnsalias.org
Cc:  
Subject: Re: ports/127728: ports/games/freebsd-games doesn't build, and
 larn(6) segfaults!
Date: Tue, 21 Jul 2009 19:48:59 +0200

 --CE+1k2dSO48ffgeK
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 Hi Clemens,
 
 please try the attached patch for the freebsd-games port and see if it
 fixes the most pressing larn segfaults on 8.0-CURRENT.
 
 It still segfaults on exit for me, but fixing this with patches upon
 patches is not the right way.
 
 As for atc, I cannot reproduce this here. Is this still a valid problem?
 
 Cheers,
 Uli
 
 --CE+1k2dSO48ffgeK
 Content-Type: text/x-diff; charset=us-ascii
 Content-Disposition: attachment; filename="larn.diff"
 
 diff -r f2064db6b76c larn/Makefile
 --- a/larn/Makefile	Tue Jul 21 17:26:23 2009 +0200
 +++ b/larn/Makefile	Tue Jul 21 19:07:29 2009 +0200
 @@ -54,7 +54,7 @@
  
  PROG=	larn
  MAN=	larn.6
 -CFLAGS+=-DPOSIX -DVER=12 -DSUBVER=0 -DNONAP -DUIDSCORE -DNOVARARGS
 +CFLAGS+=-DPOSIX -DVER=12 -DSUBVER=0 -DNONAP -DUIDSCORE
  SRCS=	main.c object.c create.c tok.c display.c global.c data.c io.c \
  	monster.c store.c diag.c help.c config.c nap.c bill.c scores.c \
  	signal.c moreobj.c movem.c regen.c fortune.c savelev.c
 diff -r f2064db6b76c larn/data.c
 --- a/larn/data.c	Tue Jul 21 17:26:23 2009 +0200
 +++ b/larn/data.c	Tue Jul 21 19:07:29 2009 +0200
 @@ -299,7 +299,7 @@
  
  /*	name array for scrolls		*/
  
 -char *scrollname[] = {
 +char *scrollname[32] = {
  "\0enchant armor",
  "\0enchant weapon",
  "\0enlightenment",
 @@ -327,11 +327,15 @@
  "\0 ",
  "\0 ",
  "\0 ",
 +"\0 ",
 +"\0 ",
 +"\0 ",
 +"\0 ",
  "\0 "
   };
  
  /*	name array for magic potions	*/
 -char *potionname[] = {
 +char *potionname[32] = {
  "\0sleep",
  "\0healing",
  "\0raise level",
 @@ -363,9 +367,6 @@
  "\0 ",
  "\0 ",
  "\0 ",
 -"\0 ",
 -"\0 ",
 -"\0 ",
  "\0 "
   };
  
 diff -r f2064db6b76c larn/global.c
 --- a/larn/global.c	Tue Jul 21 17:26:23 2009 +0200
 +++ b/larn/global.c	Tue Jul 21 19:07:29 2009 +0200
 @@ -27,7 +27,7 @@
  extern char lastmonst[],*what[],*who[];
  extern char winner[];
  extern char logname[],monstlevel[];
 -extern char sciv[SCORESIZE+1][26][2],*potionname[],*scrollname[];
 +extern char sciv[SCORESIZE+1][26][2],*potionname[][32],*scrollname[][32];
  /*
  	***********
  	RAISE LEVEL
 diff -r f2064db6b76c larn/header.h
 --- a/larn/header.h	Tue Jul 21 17:26:23 2009 +0200
 +++ b/larn/header.h	Tue Jul 21 19:07:29 2009 +0200
 @@ -341,9 +341,9 @@
  extern char *lpnt,moved[MAXX][MAXY],mitem[MAXX][MAXY],monstlevel[];
  extern char monstnamelist[],nch[],ndgg[],nlpts[],nomove,nosignal,nowelcome;
  extern char nplt[],nsw[],*objectname[];
 -extern char objnamelist[],optsfile[],*potionname[],playerids[],potprob[];
 +extern char objnamelist[],optsfile[],*potionname[][32],playerids[],potprob[];
  extern char predostuff,psname[],restorflag,savefilename[],scorefile[],scprob[];
 -extern char screen[MAXX][MAXY],*scrollname[],sex,*spelcode[],*speldescript[];
 +extern char screen[MAXX][MAXY],*scrollname[][32],sex,*spelcode[],*speldescript[];
  extern char spelknow[],*spelname[],*spelmes[],spelweird[MAXMONST+8][SPNUM];
  extern char splev[],stealth[MAXX][MAXY],to_lower[],to_upper[],wizard;
  extern short diroffx[],diroffy[],hitflag,hit2flag,hit3flag,hitp[MAXX][MAXY];
 diff -r f2064db6b76c larn/io.c
 --- a/larn/io.c	Tue Jul 21 17:26:23 2009 +0200
 +++ b/larn/io.c	Tue Jul 21 19:07:29 2009 +0200
 @@ -92,7 +92,7 @@
  #endif /* not SYSV */
  
  #ifndef NOVARARGS	/* if we have varargs */
 -#include <varargs.h>
 +#include <stdarg.h>
  #else /* NOVARARGS *//* if we don't have varargs */
  typedef char *va_list;
  #define va_dcl int va_alist;
 @@ -205,17 +205,14 @@
  	}
  #else /* lint */
  /*VARARGS*/
 -lprintf(va_alist)
 -va_dcl
 +lprintf(const char *fmt, ...)
      {
  	va_list ap;	/* pointer for variable argument list */
 -	char *fmt;
  	char *outb,*tmpb;
  	long wide,left,cont,n;		/* data for lprintf	*/
  	char db[12];			/* %d buffer in lprintf	*/
  
 -	va_start(ap);	/* initialize the var args pointer */
 -	fmt = va_arg(ap, char *);	/* pointer to format string */
 +	va_start(ap, fmt);	/* initialize the var args pointer */
  	if (lpnt >= lpend) lflush();
  	outb = lpnt;
  	for ( ; ; )
 
 --CE+1k2dSO48ffgeK--



More information about the freebsd-ports-bugs mailing list