Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!shelby!apple!usc!rutgers!devon!paul From: paul@devon.lns.pa.us (Paul Sutcliffe Jr.) Newsgroups: alt.sources.patches Subject: getty 1.1 patch #1 Summary: This is an official patch for getty 1.1. Please apply it. Message-ID: <1990Feb8.235759.8594@devon.lns.pa.us> Date: 8 Feb 90 23:57:59 GMT Organization: Devon Computer Services, Lancaster, PA Lines: 444 System: Enhanced SYSV Getty version 1.1 Patch #: 1 Priority: HIGH Description: Corrected bug in handling of ECHO, ECHOE, and ECHOK in getlogname(). The wtmp file was being clobbered on systems where an fopen with "w+" would truncate the file; now using "a". Also, getty will not create the wtmp file if it wasn't there already. Now opening the line with O_NDELAY set, to allow getty to do its hangup and line initialization even if carrier-detect is not present. The old patchlevel.h is renamed release.h, and a new patchlevel.h file is created. Fix: Save the shell archive below in your getty source directory, calling it "patch1.sh". Then cd to that directory and say "sh patch1.sh". This will create the following files: release.h (your old patchlevel.h) patchlevel.h (newly created) patch1 To apply the patches, say "patch -p -N 'patchlevel.h' X#define PATCHLEVEL 0 SHAR_EOF if test 21 -ne "`wc -c < 'patchlevel.h'`" then echo shar: error transmitting "'patchlevel.h'" '(should have been 21 characters)' fi echo shar: extracting "'patch1'" '(8138 characters)' if test -f 'patch1' then echo shar: will not over-write existing file "'patch1'" else sed 's/^X//' << \SHAR_EOF > 'patch1' XIndex: patchlevel.h XPrereq: 0 X1c1 X< #define PATCHLEVEL 0 X--- X> #define PATCHLEVEL 1 X XIndex: man/Makefile.SH XPrereq: 1.1 X*** man/Makefile.SH.old Thu Feb 8 17:37:38 1990 X--- man/Makefile.SH Thu Feb 8 17:37:43 1990 X*************** X*** 1,9 **** X : X! # $Id: Makefile.SH,v 1.1 90/01/16 16:01:02 paul Exp Locker: paul $ X # X # Creates man/Makefile for getty distribution X # X # $Log: Makefile.SH,v $ X # Revision 1.1 90/01/16 16:01:02 paul X # Initial revision X # X--- 1,12 ---- X : X! # $Id: Makefile.SH,v 1.1.1.1 90/02/08 17:31:30 paul Exp Locker: paul $ X # X # Creates man/Makefile for getty distribution X # X # $Log: Makefile.SH,v $ X+ # Revision 1.1.1.1 90/02/08 17:31:30 paul X+ # patch1: Look for release.h instead of patchlevel.h. X+ # X # Revision 1.1 90/01/16 16:01:02 paul X # Initial revision X # X*************** X*** 53,59 **** X X SRC= .. X TUNE= $(SRC)/tune.h X! PATLVL= $(SRC)/patchlevel.h X X # what to make X all: $man X--- 56,62 ---- X X SRC= .. X TUNE= $(SRC)/tune.h X! RELEASE=$(SRC)/release.h X X # what to make X all: $man X*************** X*** 71,77 **** X $(ROFF) \$*.3 > \$*.man X X # dependencies X! config.m4: $(SRC)/config.sh $(TUNE) $(PATLVL) X chmod +x makeconfig X ./makeconfig X X--- 74,80 ---- X $(ROFF) \$*.3 > \$*.man X X # dependencies X! config.m4: $(SRC)/config.sh $(TUNE) $(RELEASE) X chmod +x makeconfig X ./makeconfig X X XIndex: funcs.c XPrereq: 1.1 X*** funcs.c.old Thu Feb 8 17:34:10 1990 X--- funcs.c Thu Feb 8 17:34:17 1990 X*************** X*** 1,5 **** X /* X! ** $Id: funcs.c,v 1.1 90/01/16 16:14:28 paul Exp Locker: paul $ X ** X ** Miscellaneous routines. X */ X--- 1,5 ---- X /* X! ** $Id: funcs.c,v 1.1.1.1 90/02/08 09:36:17 paul Exp Locker: paul $ X ** X ** Miscellaneous routines. X */ X*************** X*** 21,26 **** X--- 21,30 ---- X X /* X ** $Log: funcs.c,v $ X+ ** Revision 1.1.1.1 90/02/08 09:36:17 paul X+ ** patch1: Corrected bug in handling of ECHO, ECHOE, and ECHOK X+ ** patch1: in getlogname(). X+ ** X ** Revision 1.1 90/01/16 16:14:28 paul X ** Initial revision X ** X*************** X*** 40,46 **** X X #if defined(RCSID) && !defined(lint) X static char *RcsId = X! "@(#)$Id: funcs.c,v 1.1 90/01/16 16:14:28 paul Exp Locker: paul $"; X #endif X X #ifndef MAXBUF X--- 44,50 ---- X X #if defined(RCSID) && !defined(lint) X static char *RcsId = X! "@(#)$Id: funcs.c,v 1.1.1.1 90/02/08 09:36:17 paul Exp Locker: paul $"; X #endif X X #ifndef MAXBUF X*************** X*** 590,603 **** X debug2(D_GETL, "returned (BADSPEED)\n"); X return(BADSPEED); X } X! if ((lflag & ECHO) == 0) { X (void) putc(ch, stdout); X (void) fflush(stdout); X } X if (ch == Erase) { X if (count) { X! if ((lflag & ECHOE) == 0) { X! (void) fputs(" \b", stdout); X (void) fflush(stdout); X } X --p; X--- 594,607 ---- X debug2(D_GETL, "returned (BADSPEED)\n"); X return(BADSPEED); X } X! if (lflag & ECHO) { X (void) putc(ch, stdout); X (void) fflush(stdout); X } X if (ch == Erase) { X if (count) { X! if (lflag & ECHOE) { X! (void) fputs("\b \b", stdout); X (void) fflush(stdout); X } X --p; X*************** X*** 604,610 **** X --count; X } X } else if (ch == Kill) { X! if ((lflag & ECHOK) == 0) { X (void) fputs("\r\n", stdout); X (void) fflush(stdout); X } X--- 608,614 ---- X --count; X } X } else if (ch == Kill) { X! if (lflag & ECHOK) { X (void) fputs("\r\n", stdout); X (void) fflush(stdout); X } X XIndex: main.c XPrereq: 1.1 X*** main.c.old Thu Feb 8 17:35:02 1990 X--- main.c Thu Feb 8 17:35:34 1990 X*************** X*** 1,5 **** X /* X! ** $Id: main.c,v 1.1 90/01/16 16:16:10 paul Exp Locker: paul $ X ** X ** Main body of program. X */ X--- 1,5 ---- X /* X! ** $Id: main.c,v 1.1.1.2 90/02/08 10:05:30 paul Exp Locker: paul $ X ** X ** Main body of program. X */ X*************** X*** 21,26 **** X--- 21,37 ---- X X /* X ** $Log: main.c,v $ X+ ** Revision 1.1.1.2 90/02/08 10:05:30 paul X+ ** patch1: Now opening the line with O_NDELAY set, to allow getty X+ ** patch1: to do its hangup and line initialization even if X+ ** patch1: carrier-detect is not present. X+ ** X+ ** Revision 1.1.1.1 90/02/08 09:56:07 paul X+ ** patch1: The wtmp file was being clobbered on systems where an X+ ** patch1: fopen with "w+" would truncate the file; now using "a". X+ ** patch1: Also, getty will not create the wtmp file if it wasn't X+ ** patch1: there already. X+ ** X ** Revision 1.1 90/01/16 16:16:10 paul X ** Initial revision X ** X*************** X*** 39,45 **** X X #if defined(RCSID) && !defined(lint) X static char *RcsId = X! "@(#)$Id: main.c,v 1.1 90/01/16 16:16:10 paul Exp Locker: paul $"; X #endif X X #if !defined(lint) X--- 50,56 ---- X X #if defined(RCSID) && !defined(lint) X static char *RcsId = X! "@(#)$Id: main.c,v 1.1.1.2 90/02/08 10:05:30 paul Exp Locker: paul $"; X #endif X X #if !defined(lint) X*************** X*** 476,484 **** X X debug2(D_RUN, "open stdin, stdout and stderr\n"); X X! /* get a new fd X */ X! if ((fd = open(devname, O_RDWR)) < 0) { /* open the device */ X logerr("cannot open line"); X exit(FAIL); X } X--- 487,495 ---- X X debug2(D_RUN, "open stdin, stdout and stderr\n"); X X! /* open the device; don't wait around for carrier-detect X */ X! if ((fd = open(devname, O_RDWR | O_NDELAY)) < 0) { X logerr("cannot open line"); X exit(FAIL); X } X*************** X*** 613,620 **** X pututline(utmp); X X /* write same record to end of wtmp X */ X! if ((fp = fopen(WTMP_FILE, "w+")) != (FILE *) NULL) { X (void) fseek(fp, 0L, 2); X (void) fwrite((char *)utmp,sizeof(*utmp),1,fp); X (void) fclose(fp); X--- 624,634 ---- X pututline(utmp); X X /* write same record to end of wtmp X+ * if wtmp file exists X */ X! if (stat(WTMP_FILE, &st) && errno == ENOENT) X! break; X! if ((fp = fopen(WTMP_FILE, "a")) != (FILE *) NULL) { X (void) fseek(fp, 0L, 2); X (void) fwrite((char *)utmp,sizeof(*utmp),1,fp); X (void) fclose(fp); X XIndex: man/makeconfig XPrereq: 1.1 X*** man/makeconfig.old Thu Feb 8 17:38:11 1990 X--- man/makeconfig Thu Feb 8 17:38:16 1990 X*************** X*** 1,8 **** X : X # X! # $Id: makeconfig,v 1.1 90/01/16 16:03:33 paul Exp Locker: paul $ X # X # $Log: makeconfig,v $ X # Revision 1.1 90/01/16 16:03:33 paul X # Initial revision X # X--- 1,11 ---- X : X # X! # $Id: makeconfig,v 1.1.1.1 90/02/08 17:31:57 paul Exp Locker: paul $ X # X # $Log: makeconfig,v $ X+ # Revision 1.1.1.1 90/02/08 17:31:57 paul X+ # patch1: Look for release.h instead of patchlevel.h. X+ # X # Revision 1.1 90/01/16 16:03:33 paul X # Initial revision X # X*************** X*** 30,36 **** X : where is the source X src=.. X tune=$src/tune.h X! patchlevel=$src/patchlevel.h X X : is package complete X if $test ! -f $tune; then X--- 33,39 ---- X : where is the source X src=.. X tune=$src/tune.h X! release=$src/release.h X X : is package complete X if $test ! -f $tune; then X*************** X*** 44,50 **** X rmlist="$cppout $tuneout $rmlist" X $cppstdin -I$src -I. $cppminus <$cppout X #include <$tune> X! #include <$patchlevel> X console=CONSOLE X defaults=DEFAULTS X issue=ISSUE X--- 47,53 ---- X rmlist="$cppout $tuneout $rmlist" X $cppstdin -I$src -I. $cppminus <$cppout X #include <$tune> X! #include <$release> X console=CONSOLE X defaults=DEFAULTS X issue=ISSUE X XIndex: release.h XPrereq: 1.1 X*** release.h.old Thu Feb 8 17:37:07 1990 X--- release.h Thu Feb 8 17:37:11 1990 X*************** X*** 1,16 **** X /* X! ** $Id: patchlevel.h,v 1.1 90/01/16 16:17:12 paul Exp Locker: paul $ X ** X! ** Getty release/patchlevel X */ X X X- #define PATCHLEVEL 0 /* patchlevel */ X- X /* these are used by the man pages, too X */ X! #define RELEASE "1.1" /* release number */ X! #define DATE "16-Jan-90" /* release date */ X X X! /* end of patchlevel.h */ X--- 1,14 ---- X /* X! ** $Id: release.h,v 1.1.1.1 90/02/08 17:24:43 paul Exp Locker: paul $ X ** X! ** Getty release/date X */ X X X /* these are used by the man pages, too X */ X! #define RELEASE "1.1.1" /* release number */ X! #define DATE "08-Feb-90" /* release date */ X X X! /* end of release.h */ SHAR_EOF if test 8138 -ne "`wc -c < 'patch1'`" then echo shar: error transmitting "'patch1'" '(should have been 8138 characters)' fi fi # end of overwriting check # End of shell archive exit 0 INTERNET: paul@devon.lns.pa.us | If life's a bitch, then UUCP: ...!rutgers!devon!paul | we must be her puppies.