]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
snapshot-19990323
authorWietse Venema <wietse@porcupine.org>
Tue, 23 Mar 1999 05:00:00 +0000 (00:00 -0500)
committerWietse Venema <wietse@porcupine.org>
Thu, 17 Jan 2013 03:33:58 +0000 (22:33 -0500)
postfix/HISTORY
postfix/conf/postfix-script-nosgid
postfix/conf/postfix-script-sgid
postfix/global/mail_version.h
postfix/local/recipient.c
postfix/util/dict_unix.h
postfix/util/stream_listen.c

index f6750e5d3a41f6f31d5c5724fd404a01d6ff2c21..fa3b5c41d2350f43f54a8cefff9d349d2b165b9b 100644 (file)
@@ -2388,8 +2388,8 @@ Apologies for any names omitted.
        recipient addresses. For the sake of symmetry, we now also
        have reject_unknown_sender_domain. This means the old
        reject_unknown_address restriction is being phased out.
-       Suggested by Rask Ingemann Lambertsen [XXX affiliation to
-       be determined].
+       Suggested by Rask Ingemann Lambertsen, Denmark Technical
+       University.
 
        Feature: unknown sender/recipient domain restrictions now
        distinguish between soft errors (always: 450) and hard
@@ -2405,6 +2405,14 @@ Apologies for any names omitted.
        rewrite that problem is eliminated.  Thanks to Chris
        Cappuccio, Empire Net, for assistance with testing.
 
+19990323
+
+       Bugfix: too much forwarding when users list their own name
+       in their .forward file (e.g. mail to user@localhost would
+       go through .forward, would be forwarded to user@$myorigin,
+       and would go through .forward again). Problem reported by
+       Roman Dolejsi, Prague University of Economics.
+
 Future:
 
        Planned: must be able to list the same hash table in
index 6a5ac4fc1cc0cf894f6438c2045b5bf123c5812b..f46984aaeaf27138a3c50a3ffa8cd992888b639e 100755 (executable)
@@ -164,6 +164,10 @@ check)
        find $daemon_directory/* $config_directory/* ! -user root \
                -exec $WARN not owned by root: {} \;
 
+       find $daemon_directory/. $config_directory/. \
+               \( -perm -020 -or -perm -002 \) \
+               -exec $WARN group or other writable: {} \;
+
        find $queue_directory/* $config_directory/* -name '*core' \
                -exec $WARN core file: {} \; 2>/dev/null
 
index cfbc171c9a87f29b594f14bd4d1c23726a48d5d2..f6ddf6f192fc5fe4232bfbc73516a73dde64a9b8 100755 (executable)
@@ -164,6 +164,10 @@ check)
        find $daemon_directory/* $config_directory/* ! -user root \
                -exec $WARN not owned by root: {} \;
 
+       find $daemon_directory/. $config_directory/. \
+               \( -perm -020 -or -perm -002 \) \
+               -exec $WARN group or other writable: {} \;
+
        find $queue_directory/* $config_directory/* -name '*core' \
                -exec $WARN core file: {} \; 2>/dev/null
 
index 5164dfe05b2efdc5ba9d32e88710bddcd0a878af..d1240368d1a7cf1af6b311bff3fceeffdfb03ea2 100644 (file)
@@ -15,7 +15,7 @@
   * Version of this program.
   */
 #define VAR_MAIL_VERSION       "mail_version"
-#define DEF_MAIL_VERSION       "Snapshot-19990322"
+#define DEF_MAIL_VERSION       "Snapshot-19990323"
 extern char *var_mail_version;
 
 /* LICENSE
index 17271b28b91480a0082a0d2652a216073ba52fdc..5ee0836fdd9950563e68c4dba08117c673943654 100644 (file)
@@ -145,9 +145,16 @@ static int deliver_switch(LOCAL_STATE state, USER_ATTR usr_attr)
      * approach is that recipients in the expansion of an alias without
      * owner- won't have separate delivery queue file status records, because
      * for them, the message won't be resubmitted as a new queue file.
+     * 
+     * Do something sensible on systems that receive mail for multiple domains,
+     * such as primary.name and secondary.name. Don't resubmit the message
+     * when mail for `user@secondary.name' is delivered to a .forward file
+     * that lists `user' or `user@primary.name'. We already know that the
+     * recipient domain is local, so we only have to compare local parts.
      */
     if (state.msg_attr.owner != 0
-       && strcasecmp(state.msg_attr.owner, state.msg_attr.recipient) != 0)
+       && strncasecmp(state.msg_attr.owner, state.msg_attr.recipient,
+                      strlen(state.msg_attr.local) + 1) != 0)
        return (deliver_indirect(state));
 
     /*
index df8dc647048a2d91a2b5f7c145ebdc2f6202f7c6..c0cce81a58d7395e92dff07a4f0a757b65fc278e 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef _DIST_UNIX_H_INCLUDED_
-#define _DIST_UNIX_H_INCLUDED_
+#ifndef _DICT_UNIX_H_INCLUDED_
+#define _DICT_UNIX_H_INCLUDED_
 
 /*++
 /* NAME
index dbbe1a09509f6be5c99ad11d36491ec78dae3668..5882c30d986be3a1f07e3e08743116c9e10c3e89 100644 (file)
@@ -76,7 +76,7 @@ int     stream_listen(const char *path, int unused_backlog, int block_mode)
      * We can't specify a listen backlog, however, sending file descriptors
      * across a FIFO gives us a backlog buffer of 460 on Solaris 2.4/SPARC.
      */
-    return (fifo_listen(path, 0666, block_mode));
+    return (fifo_listen(path, 0622, block_mode));
 #else
     msg_fatal("stream connections are not implemented");
 #endif