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