=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mail/temp.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- src/usr.bin/mail/temp.c 1996/10/28 00:42:21 1.4 +++ src/usr.bin/mail/temp.c 1997/03/29 03:01:47 1.5 @@ -1,4 +1,4 @@ -/* $OpenBSD: temp.c,v 1.4 1996/10/28 00:42:21 millert Exp $ */ +/* $OpenBSD: temp.c,v 1.5 1997/03/29 03:01:47 millert Exp $ */ /* $NetBSD: temp.c,v 1.5 1996/06/08 19:48:42 christos Exp $ */ /* @@ -38,7 +38,7 @@ #if 0 static char sccsid[] = "@(#)temp.c 8.1 (Berkeley) 6/6/93"; #else -static char rcsid[] = "$OpenBSD: temp.c,v 1.4 1996/10/28 00:42:21 millert Exp $"; +static char rcsid[] = "$OpenBSD: temp.c,v 1.5 1997/03/29 03:01:47 millert Exp $"; #endif #endif /* not lint */ @@ -64,8 +64,16 @@ { register char *cp; - if ((tmpdir = getenv("TMPDIR")) == NULL) { + if ((tmpdir = getenv("TMPDIR")) == NULL || *tmpdir == '\0') tmpdir = _PATH_TMP; + if ((tmpdir = strdup(tmpdir)) == NULL) + panic("Out of memory"); + + /* Strip trailing '/' if necesary */ + cp = tmpdir + strlen(tmpdir) - 1; + while (cp > tmpdir && *cp == '/') { + *cp = '\0'; + cp--; } tempMail = tempnam(tmpdir, "Rs");