[comp.bugs.misc] Pathalias on an ATT 3b2

imtsft@imt3b2.UUCP (IMT Inc.) (11/14/86)

Does anyone have the latest version of pathalias running on an ATT 3b2?
The source that we have (dated 1/86) compiles but does not execute properly.
Either our source is damaged or we have managed to overlook the
obvious in compiling it correctly. The previous version (dated 8/85)
appears to at least execute properly. Any help or direction is welcome.

Below is the config.h file used to compile pathalias:
-----------------------------------------------------------------------------
/* pathalias -- by steve bellovin, as told to peter honeyman */

#define STRCHR		/* have strchr, not index -- probably system v */
#define UNAME		/* have uname() -- probably system v or 8th ed. */
#define MEMSET		/* have memset() -- probably system v or 8th ed. */

/* #define GETHOSTNAME	/* have gethostname() -- probably 4.2bsd */
/* #define BZERO	/* have bzero() -- probably 4.2bsd */

/* default place for dbm output of makedb (or use -o file at run-time) */
#define	ALIASDB	"/usr/lib/news/palias.new"



/**************************************************************************
 *									  *
 * +--------------------------------------------------------------------+ *
 * |									| *
 * |			END OF CONFIGURATION SECTION			| *
 * |									| *
 * |				EDIT NO MORE				| *
 * |									| *
 * +--------------------------------------------------------------------+ *
 *									  *
 **************************************************************************/

#ifdef MAIN
#ifndef lint
static char	*c_sccsid = "@(#)config.h	8.1 (down!honey) 86/01/19";
#endif /*lint*/
#endif /*MAIN*/

/*
 * malloc/free fine tuned for pathalias.
 *
 * MYMALLOC should work everwhere, so it's not a configuration
 * option (anymore).  nonetheless, if you're getting strange
 * core dumps (or panics!), comment out the following manifest,
 * and use the inferior C library malloc/free.
 *
 * report problems to princeton!honey.
 */
#define MYMALLOC	/**/

#ifdef MYMALLOC
#define malloc mymalloc
#define calloc(n, s) malloc ((n)*(s))
#define free(s)
#define cfree(s)
extern char *memget();
#endif

#ifdef STRCHR
#define index strchr
#define rindex strrchr
#else
#define strchr index
#define strrchr rindex
#endif

#ifdef BZERO
#define strclear(s, n)	((void) bzero((s), (n)))
#else /*!BZERO*/

#ifdef MEMSET
extern char	*memset();
#define strclear(s, n)	((void) memset((s), 0, (n)))
#else /*!MEMSET*/
extern void	strclear();
#endif /*MEMSET*/

#endif /*BZERO*/

extern char	*malloc();
extern char	*strcpy(), *index(), *rindex();
-----------------------------------------------------------------------------

Below is a short input file to the latest version of pathalias:
-----------------------------------------------------------------------------
peregrine	ccicpg(DAILY), felix(DEMAND), imt3b2(DEMAND)
ccicpg	bellcore(EVENING), calma(EVENING), ccice5(DEMAND), 
	ccivax(EVENING), pixar(WEEKLY), ism780(DAILY), leo(DIRECT), 
	okeeffe(EVENING), peregrine(DEMAND), rlgvax(EVENING), sperry(EVENING), 
	thirdi(DEMAND), ucivax(DAILY), ulysses(EVENING), verdix(EVENING)
felix	abspc(POLLED), attunix(DEAD), birtch(POLLED), ccicpg(POLLED),
	csuf(DEMAND), fritz(DIRECT), gcss20(DEMAND), ghsvax(DEMAND),
	hplabs(DEMAND), oliveb(DEMAND), peregrine(POLLED), scgvaxd(EVENING),
	sco(EVENING), trwrb(DEMAND), ucivax(DEMAND), vortex(DEMAND)
-----------------------------------------------------------------------------

This is the pathalias output of the run:
-----------------------------------------------------------------------------
You can't get there from here:
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
	P(PP
imt3b2	%s
-----------------------------------------------------------------------------

rct@occrsh.UUCP (11/18/86)

Re: pathalias problem on 3B2

There is an array in parse.y which should be declared static, and
this will solve your problem.  Line 199 (or thereabouts) in parse.y
looks like (in the official distribution):
	char	buf[BUFSIZ], errbuf[128];

Change this to:
	static char buf[BUFSIZ];
	char errbuf[128];

and you should be in business.

--Bob Tracy	AT&T Network & Computer (uh... Data) Systems
ihnp4!occrsh!rct