Change from using sys/param.h and MAXPATHLEN to using limits.h and PATH_MAX

to avoid the NOFILE problem.  Back out NOFILE kludge.  Fix unexploitable
buffer overflow in tipout.c.
Reviewed by:	millert@openbsd.org (tipout.c)
Submitted by:	millert@openbsd.org (rest of idea)
This commit is contained in:
Warner Losh 1997-08-25 05:02:11 +00:00
parent f525ead3dd
commit daca865092
4 changed files with 11 additions and 11 deletions

View File

@ -36,7 +36,7 @@
static char sccsid[] = "@(#)cmds.c 8.1 (Berkeley) 6/6/93"; static char sccsid[] = "@(#)cmds.c 8.1 (Berkeley) 6/6/93";
#endif #endif
static const char rcsid[] = static const char rcsid[] =
"$Id: cmds.c,v 1.3 1997/08/18 07:16:00 charnier Exp $"; "$Id: cmds.c,v 1.4 1997/08/22 22:14:15 imp Exp $";
#endif /* not lint */ #endif /* not lint */
#include "tipconf.h" #include "tipconf.h"
@ -787,7 +787,7 @@ setscript()
void void
chdirectory() chdirectory()
{ {
char dirname[MAXPATHLEN]; char dirname[PATH_MAX];
register char *cp = dirname; register char *cp = dirname;
if (prompt("[cd] ", dirname, sizeof(dirname))) { if (prompt("[cd] ", dirname, sizeof(dirname))) {

View File

@ -42,7 +42,7 @@ static const char copyright[] =
static char sccsid[] = "@(#)tip.c 8.1 (Berkeley) 6/6/93"; static char sccsid[] = "@(#)tip.c 8.1 (Berkeley) 6/6/93";
#endif #endif
static const char rcsid[] = static const char rcsid[] =
"$Id: tip.c,v 1.3 1997/08/18 07:16:06 charnier Exp $"; "$Id: tip.c,v 1.4 1997/08/22 22:14:15 imp Exp $";
#endif /* not lint */ #endif /* not lint */
/* /*
@ -88,7 +88,7 @@ void setparity __P((char *));
void pwrite __P((int, char *, int)); void pwrite __P((int, char *, int));
char escape __P((void)); char escape __P((void));
void tipin __P((void)); void tipin __P((void));
int prompt __P((char *, char *, int)); int prompt __P((char *, char *, size_t));
void unraw __P((void)); void unraw __P((void));
void shell_uid __P((void)); void shell_uid __P((void));
void daemon_uid __P((void)); void daemon_uid __P((void));
@ -380,7 +380,7 @@ int
prompt(s, p, sz) prompt(s, p, sz)
char *s; char *s;
register char *p; register char *p;
int sz; size_t sz;
{ {
register char *b = p; register char *b = p;
sig_t oint, oquit; sig_t oint, oquit;

View File

@ -42,7 +42,7 @@
#include <machine/endian.h> #include <machine/endian.h>
#include <sys/file.h> #include <sys/file.h>
#include <sys/time.h> #include <sys/time.h>
#include <sys/param.h> #include <limits.h>
#if HAVE_TERMIOS #if HAVE_TERMIOS
#include <sys/ioctl.h> /* for TIOCHPCL */ #include <sys/ioctl.h> /* for TIOCHPCL */
@ -290,8 +290,8 @@ int stoprompt; /* for interrupting a prompt session */
int timedout; /* ~> transfer timedout */ int timedout; /* ~> transfer timedout */
int cumode; /* simulating the "cu" program */ int cumode; /* simulating the "cu" program */
char fname[MAXPATHLEN]; /* file name buffer for ~< */ char fname[PATH_MAX]; /* file name buffer for ~< */
char copyname[MAXPATHLEN]; /* file name buffer for ~> */ char copyname[PATH_MAX]; /* file name buffer for ~> */
char ccc; /* synchronization character */ char ccc; /* synchronization character */
char ch; /* for tipout */ char ch; /* for tipout */
char *uucplock; /* name of lock file for uucp's */ char *uucplock; /* name of lock file for uucp's */
@ -317,7 +317,7 @@ extern void disconnect __P((char *));
extern void shell_uid __P((void)); extern void shell_uid __P((void));
extern void unraw __P((void)); extern void unraw __P((void));
extern void pwrite __P((int, char *, int)); extern void pwrite __P((int, char *, int));
extern int prompt __P((char *, char *, int)); extern int prompt __P((char *, char *, size_t));
extern void consh __P((int)); extern void consh __P((int));
extern void tipabort __P((char *)); extern void tipabort __P((char *));

View File

@ -36,7 +36,7 @@
static char sccsid[] = "@(#)tipout.c 8.1 (Berkeley) 6/6/93"; static char sccsid[] = "@(#)tipout.c 8.1 (Berkeley) 6/6/93";
#endif #endif
static const char rcsid[] = static const char rcsid[] =
"$Id$"; "$Id: tipout.c,v 1.4 1997/08/18 07:16:08 charnier Exp $";
#endif /* not lint */ #endif /* not lint */
#include "tip.h" #include "tip.h"
@ -74,7 +74,7 @@ intEMT()
char reply; char reply;
read(fildes[0], &c, 1); read(fildes[0], &c, 1);
while (c != '\n') { while (c != '\n' && pline - line < sizeof(line)) {
*pline++ = c; *pline++ = c;
read(fildes[0], &c, 1); read(fildes[0], &c, 1);
} }