projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This commit was manufactured by cvs2svn to create tag 'FreeBSD-release/1.1'.
[unix-history]
/
usr.sbin
/
sendmail
/
src
/
envelope.c
diff --git
a/usr.sbin/sendmail/src/envelope.c
b/usr.sbin/sendmail/src/envelope.c
index
3048ac3
..
14656f0
100644
(file)
--- a/
usr.sbin/sendmail/src/envelope.c
+++ b/
usr.sbin/sendmail/src/envelope.c
@@
-33,11
+33,10
@@
*/
#ifndef lint
*/
#ifndef lint
-static char sccsid[] = "@(#)envelope.c 8.
28 (Berkeley) 1/9
/94";
+static char sccsid[] = "@(#)envelope.c 8.
33 (Berkeley) 2/10
/94";
#endif /* not lint */
#include "sendmail.h"
#endif /* not lint */
#include "sendmail.h"
-#include <sys/time.h>
#include <pwd.h>
/*
#include <pwd.h>
/*
@@
-585,7
+584,7
@@
setsender(from, e, delimptr, internal)
*/
if (bitset(EF_QUEUERUN, e->e_flags) || OpMode == MD_SMTP ||
*/
if (bitset(EF_QUEUERUN, e->e_flags) || OpMode == MD_SMTP ||
- OpMode == MD_DAEMON)
+ OpMode == MD_
ARPAFTP || OpMode == MD_
DAEMON)
realname = from;
if (realname == NULL || realname[0] == '\0')
realname = username();
realname = from;
if (realname == NULL || realname[0] == '\0')
realname = username();
@@
-694,9
+693,11
@@
setsender(from, e, delimptr, internal)
** Process passwd file entry.
*/
** Process passwd file entry.
*/
-
/* extract home directory */
/* extract home directory */
- e->e_from.q_home = newstr(pw->pw_dir);
+ if (strcmp(pw->pw_dir, "/") == 0)
+ e->e_from.q_home = newstr("");
+ else
+ e->e_from.q_home = newstr(pw->pw_dir);
define('z', e->e_from.q_home, e);
/* extract user and group id */
define('z', e->e_from.q_home, e);
/* extract user and group id */
@@
-720,7
+721,12
@@
setsender(from, e, delimptr, internal)
else if (!internal && OpMode != MD_DAEMON)
{
if (e->e_from.q_home == NULL)
else if (!internal && OpMode != MD_DAEMON)
{
if (e->e_from.q_home == NULL)
+ {
e->e_from.q_home = getenv("HOME");
e->e_from.q_home = getenv("HOME");
+ if (e->e_from.q_home != NULL &&
+ strcmp(e->e_from.q_home, "/") == 0)
+ e->e_from.q_home++;
+ }
e->e_from.q_uid = RealUid;
e->e_from.q_gid = RealGid;
e->e_from.q_flags |= QGOODUID;
e->e_from.q_uid = RealUid;
e->e_from.q_gid = RealGid;
e->e_from.q_flags |= QGOODUID;