Postfix version 1.1 patch 01 cleans up a lot of documentation, fixes one bug, and adds one safety feature: - Bugfix: postqueue -s dereferenced a null pointer when given a numerical domain argument. - Safety: when postmap creates a non-existent file, the new file inherits group/other read permissions from the source file. At almost 40 kbytes the patch is too large for email distribution. The patch, as well as patched Postfix source code, can be found at ftp://ftp.porcupine.org/ 8588 Jan 22 12:12 postfix-1.1-patch01.gz 152 Jan 22 11:32 postfix-1.1.1.tar.gz.sig 1172858 Jan 22 11:32 postfix-1.1.1.tar.gz 50295 Jan 22 11:31 postfix-1.1.1.RELEASE_NOTES 207060 Jan 22 11:22 postfix-1.1.1.HISTORY Soon to appear on the mirror sites listed on www.postfix.org. Wietse Prereq: "1.1.0" diff -cr /tmp/postfix-1.1.0/src/global/mail_version.h ./src/global/mail_version.h *** /tmp/postfix-1.1.0/src/global/mail_version.h Thu Jan 17 14:14:39 2002 --- ./src/global/mail_version.h Tue Jan 22 09:44:07 2002 *************** *** 22,30 **** */ #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT ! #define DEF_MAIL_VERSION "1.1.0-$mail_release_date" #else ! #define DEF_MAIL_VERSION "1.1.0" #endif extern char *var_mail_version; --- 22,30 ---- */ #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT ! #define DEF_MAIL_VERSION "1.1.1-$mail_release_date" #else ! #define DEF_MAIL_VERSION "1.1.1" #endif extern char *var_mail_version; *************** *** 32,38 **** * Release date. */ #define VAR_MAIL_RELEASE "mail_release_date" ! #define DEF_MAIL_RELEASE "20020117" extern char *var_mail_release; /* LICENSE --- 32,38 ---- * Release date. */ #define VAR_MAIL_RELEASE "mail_release_date" ! #define DEF_MAIL_RELEASE "20020122" extern char *var_mail_release; /* LICENSE diff -cr /tmp/postfix-1.1.0/HISTORY ./HISTORY *** /tmp/postfix-1.1.0/HISTORY Thu Jan 17 12:58:24 2002 --- ./HISTORY Tue Jan 22 11:22:35 2002 *************** *** 5982,5987 **** --- 5982,6011 ---- Portability: patch from LaMont Jones for compiling dict_ldap.c with the Netscape SDK. + Feature: added "r" (recursive chown/chgrp) flag to the + postfix-files database, for more convenient change of + Postfix queue ownership. Files: conf/postfix-files, + conf/post-install. + + 20020122 + + Documentation: lots of little fixes. + + Documentation: updates for the VIRTUAL_README file by Victor + Duchovni, Morgan Stanley. + + Bugfix: postqueue -s dereferenced a null pointer when given + a numerical domain argument. LaMont Jones, HP. + + Cleanup: smtpd now logs a warning when permit_sasl_authenticated + is used while SASL authentication is disabled, instead of + simply ignoring the restriction. LaMont Jones, HP. File: + smtpd/smtpd.c. + + Safety: when postmap creates a non-existent file, the new + file inherits group/other read permissions from the source + file. LaMont Jones, HP. File: postmap/postmap.c. + Open problems: Low: don't do user@domain and @domain lookups in diff -cr /tmp/postfix-1.1.0/README_FILES/DB_README ./README_FILES/DB_README *** /tmp/postfix-1.1.0/README_FILES/DB_README Mon Jan 14 09:59:35 2002 --- ./README_FILES/DB_README Mon Jan 21 08:02:36 2002 *************** *** 24,34 **** The exact pathnames depend on the DB version that you installed. For example, Berkeley DB version 2 installs in /usr/local/BerkeleyDB. ! Beware, the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. Building Postfix on BSD systems with a specific Berkeley DB version =================================================================== --- 24,40 ---- The exact pathnames depend on the DB version that you installed. For example, Berkeley DB version 2 installs in /usr/local/BerkeleyDB. ! Warning: the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. + Warning: if you use Berkeley DB version 2 or later, do not enable + DB 1.85 compatibility mode. Doing so would break fcntl file locking. + + Warning: if you use PERL to manipulate Postfix .db files, then you + need to use the same Berkeley DB version in PERL as in Postfix. + Building Postfix on BSD systems with a specific Berkeley DB version =================================================================== *************** *** 43,57 **** % make makefiles CCARGS=-I/usr/include/db2 AUXLIBS=-ldb2 % make ! Beware, the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. Warning: if you use Berkeley DB version 2 or later, do not enable ! DB 1.85 compatibility mode. Doing so would break file locking on ! Solaris, HP-UX, UNIXWARE, IRIX and other systems, causing mail to ! be lost when you update a table while Postfix is running. Building Postfix on Linux with a specific Berkeley DB version ============================================================= --- 49,64 ---- % make makefiles CCARGS=-I/usr/include/db2 AUXLIBS=-ldb2 % make ! Warning: the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. Warning: if you use Berkeley DB version 2 or later, do not enable ! DB 1.85 compatibility mode. Doing so would break fcntl file locking. ! ! Warning: if you use PERL to manipulate Postfix .db files, then you ! need to use the same Berkeley DB version in PERL as in Postfix. Building Postfix on Linux with a specific Berkeley DB version ============================================================= *************** *** 67,73 **** changes randomly between vendors and between versions, so that Postfix has to choose the file for you. ! Beware, the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. --- 74,86 ---- changes randomly between vendors and between versions, so that Postfix has to choose the file for you. ! Warning: the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. + + Warning: if you use Berkeley DB version 2 or later, do not enable + DB 1.85 compatibility mode. Doing so would break fcntl file locking. + + Warning: if you use PERL to manipulate Postfix .db files, then you + need to use the same Berkeley DB version in PERL as in Postfix. diff -cr /tmp/postfix-1.1.0/README_FILES/FILTER_README ./README_FILES/FILTER_README *** /tmp/postfix-1.1.0/README_FILES/FILTER_README Sun Jan 6 19:52:09 2002 --- ./README_FILES/FILTER_README Tue Jan 22 09:07:57 2002 *************** *** 211,221 **** /etc/postfix/master.cf: localhost:10026 inet n - n - 10 smtpd ! -o content_filter= -o myhostname=localhost.domain.name This is just another SMTP server. It is configured NOT to request ! content filtering for incoming mail, has the same process limit ! as the filter master.cf entry, and is configured to use a different ! hostname in the greeting message (this is necessary for testing ! when I simply use no filtering program and let the SMTP content ! filtering interfaces talk directly to each other). --- 211,229 ---- /etc/postfix/master.cf: localhost:10026 inet n - n - 10 smtpd ! -o content_filter= ! -o local_recipient_maps= ! -o myhostname=localhost.domain.name This is just another SMTP server. It is configured NOT to request ! content filtering for incoming mail. The server has the same process ! limit as the filter master.cf entry. ! ! The "-o local_recipient_maps=" is a safety in case you have specified ! local_recipient_maps in the main.cf file. That setting could ! interfere with content filtering. ! ! The SMTP server is configured to use a different hostname in the ! greeting message (this is necessary for testing when I simply use ! no filtering program and let the SMTP content filtering interfaces ! talk directly to each other). diff -cr /tmp/postfix-1.1.0/README_FILES/VIRTUAL_README ./README_FILES/VIRTUAL_README *** /tmp/postfix-1.1.0/README_FILES/VIRTUAL_README Wed Jan 16 13:22:53 2002 --- ./README_FILES/VIRTUAL_README Tue Jan 22 09:42:32 2002 *************** *** 147,166 **** virtual_uid_maps = hash:/etc/postfix/vuid virtual_gid_maps = hash:/etc/postfix/vgid ! # All domains that have final delivery on this machine ! mydestination = $myhostname localhost.$mydomain ! # Define a virtual delivery agent if the entry doesn't already exist /etc/postfix/master.cf: virtual unix - n n - - virtual ! # Example recipients, one UNIX-style mailbox, one qmail-style maildir: /etc/postfix/vmailbox: - virtual1.domain dummy to prevent relay access denied errors - virtual2.domain dummy to prevent relay access denied errors test1@virtual1.domain test1 test2@virtual2.domain test2/ --- 147,166 ---- virtual_uid_maps = hash:/etc/postfix/vuid virtual_gid_maps = hash:/etc/postfix/vgid ! # All domains that are listed in $mydestination are delivered ! # with $local_transport, which is the virtual delivery agent. ! mydestination = ! $myhostname localhost.$mydomain virtual1.domain virtual2.domain ! Define a virtual delivery agent if the entry doesn't already exist: /etc/postfix/master.cf: virtual unix - n n - - virtual ! Example recipients, one UNIX-style mailbox, one qmail-style maildir: /etc/postfix/vmailbox: test1@virtual1.domain test1 test2@virtual2.domain test2/ *************** *** 205,237 **** virtual_gid_maps = static:5000 transport_maps = hash:/etc/postfix/transport ! # All domains that have final delivery on this machine ! mydestination = ! $myhostname $localhost.$mydomain virtual1.domain virtual2.domain ! # Reject unknown local and virtual recipients at the SMTP port ! local_recipient_maps = ! unix:passwd.byname $alias_maps $virtual_mailbox_maps ! # Define a virtual delivery agent if the entry doesn't already exist /etc/postfix/master.cf: virtual unix - n n - - virtual ! # Route specific domains to the virtual delivery agent; by default, ! # mail for domains in $mydestination goes to the local delivery agent /etc/postfix/transport: virtual1.domain virtual virtual2.domain virtual ! # Example recipients, one UNIX-style mailbox, one qmail-style maildir: /etc/postfix/vmailbox: ! virtual1.domain dummy to prevent relay access denied errors ! virtual2.domain dummy to prevent relay access denied errors test1@virtual1.domain test1 test2@virtual2.domain test2/ --- 205,234 ---- virtual_gid_maps = static:5000 transport_maps = hash:/etc/postfix/transport ! # All domains that are delivered by the local delivery agent. ! mydestination = $myhostname $localhost.$mydomain ! # Reject unknown local recipients at the SMTP port. ! local_recipient_maps = unix:passwd.byname $alias_maps ! Define a virtual delivery agent if the entry doesn't already exist: /etc/postfix/master.cf: virtual unix - n n - - virtual ! Route virtual domains to the virtual delivery agent: /etc/postfix/transport: virtual1.domain virtual virtual2.domain virtual ! Example recipients, one UNIX-style mailbox, one qmail-style maildir: /etc/postfix/vmailbox: ! virtual1.domain required to prevent relay access denied errors ! virtual2.domain required to prevent relay access denied errors test1@virtual1.domain test1 test2@virtual2.domain test2/ diff -cr /tmp/postfix-1.1.0/RELEASE_NOTES ./RELEASE_NOTES *** /tmp/postfix-1.1.0/RELEASE_NOTES Thu Jan 17 14:14:34 2002 --- ./RELEASE_NOTES Thu Jan 17 15:21:10 2002 *************** *** 21,27 **** type that is used only for messages that actually use VERP (variable envelope return path) support. With this sole exception, the queue file format is entirely backwards compatible with the previous ! official Postfix release (20020228, a.k.a. Postfix 1.1.0). [snapshot-20020106] This release modifies the existing master.cf file. The local pickup service is now unprivileged, and the cleanup --- 21,27 ---- type that is used only for messages that actually use VERP (variable envelope return path) support. With this sole exception, the queue file format is entirely backwards compatible with the previous ! official Postfix release (20020228, a.k.a. Postfix 1.0.0). [snapshot-20020106] This release modifies the existing master.cf file. The local pickup service is now unprivileged, and the cleanup diff -cr /tmp/postfix-1.1.0/conf/post-install ./conf/post-install *** /tmp/postfix-1.1.0/conf/post-install Wed Jan 16 09:53:07 2002 --- ./conf/post-install Thu Jan 17 15:08:59 2002 *************** *** 426,431 **** --- 426,432 ---- # Pick up the flags. case $flags in *u*) upgrade_flag=1;; *) upgrade_flag=;; esac case $flags in *c*) create_flag=1;; *) create_flag=;; esac + case $flags in *r*) recursive="-R";; *) recursive=;; esac # Create missing directories with proper owner/group/mode settings. if [ -n "$create" -a "$type" = "d" -a -n "$create_flag" -a ! -d "$path" ] then *************** *** 442,449 **** set_permission=1 fi test -n "$set_permission" && { ! chown $owner $path || exit 1 ! test -z "$group" || chgrp $group $path || exit 1 chmod $mode $path || exit 1 } done --- 443,450 ---- set_permission=1 fi test -n "$set_permission" && { ! chown $recursive $owner $path || exit 1 ! test -z "$group" || chgrp $recursive $group $path || exit 1 chmod $mode $path || exit 1 } done diff -cr /tmp/postfix-1.1.0/conf/postfix-files ./conf/postfix-files *** /tmp/postfix-1.1.0/conf/postfix-files Thu Jan 17 12:50:55 2002 --- ./conf/postfix-files Thu Jan 17 19:37:39 2002 *************** *** 29,34 **** --- 29,35 ---- # p=preserve existing file, do not replace (postfix-install). # u=update owner/group/mode (post-install upgrade-permissions). # c=create missing directory (post-install create-missing). + # r=apply owner/group recursively (post-install set/upgrade-permissions). # # Note: the "u" flag is for upgrading the permissions of existing files # or directories after changes in Postfix architecture. For robustness *************** *** 40,54 **** $queue_directory:d:root:-:755:uc $sample_directory:d:root:-:755 $readme_directory:d:root:-:755 ! $queue_directory/active:d:$mail_owner:-:700:uc ! $queue_directory/bounce:d:$mail_owner:-:700:uc ! $queue_directory/corrupt:d:$mail_owner:-:700:uc ! $queue_directory/defer:d:$mail_owner:-:700:uc ! $queue_directory/deferred:d:$mail_owner:-:700:uc ! $queue_directory/flush:d:$mail_owner:-:700:uc ! $queue_directory/incoming:d:$mail_owner:-:700:uc $queue_directory/private:d:$mail_owner:-:700:uc ! $queue_directory/saved:d:$mail_owner:-:700:uc $queue_directory/maildrop:d:$mail_owner:$setgid_group:730:uc $queue_directory/public:d:$mail_owner:$setgid_group:710:uc $queue_directory/pid:d:root:-:755:uc --- 41,55 ---- $queue_directory:d:root:-:755:uc $sample_directory:d:root:-:755 $readme_directory:d:root:-:755 ! $queue_directory/active:d:$mail_owner:-:700:ucr ! $queue_directory/bounce:d:$mail_owner:-:700:ucr ! $queue_directory/corrupt:d:$mail_owner:-:700:ucr ! $queue_directory/defer:d:$mail_owner:-:700:ucr ! $queue_directory/deferred:d:$mail_owner:-:700:ucr ! $queue_directory/flush:d:$mail_owner:-:700:ucr ! $queue_directory/incoming:d:$mail_owner:-:700:ucr $queue_directory/private:d:$mail_owner:-:700:uc ! $queue_directory/saved:d:$mail_owner:-:700:ucr $queue_directory/maildrop:d:$mail_owner:$setgid_group:730:uc $queue_directory/public:d:$mail_owner:$setgid_group:710:uc $queue_directory/pid:d:root:-:755:uc diff -cr /tmp/postfix-1.1.0/conf/transport ./conf/transport *** /tmp/postfix-1.1.0/conf/transport Sun Jan 6 18:02:33 2002 --- ./conf/transport Sun Jan 20 13:38:35 2002 *************** *** 148,154 **** # details and for default values. Use the postfix reload # command after a configuration change. # ! # parent_domain_matches_subdomains (versions >= 20011119) # List of Postfix features that use domain.name pat- # terns to match sub.domain.name (as opposed to # requiring .domain.name patterns). --- 148,154 ---- # details and for default values. Use the postfix reload # command after a configuration change. # ! # parent_domain_matches_subdomains # List of Postfix features that use domain.name pat- # terns to match sub.domain.name (as opposed to # requiring .domain.name patterns). diff -cr /tmp/postfix-1.1.0/examples/chroot-setup/LINUX2 ./examples/chroot-setup/LINUX2 *** /tmp/postfix-1.1.0/examples/chroot-setup/LINUX2 Tue Jan 16 20:30:29 2001 --- ./examples/chroot-setup/LINUX2 Tue Jan 22 11:00:34 2002 *************** *** 39,45 **** # remove /etc/localtime in case it's a broken symlink # restrict find to maxdepth 1 (faster) - # $Log: LINUX2,v $ # Revision 1.4 2001/01/15 09:36:35 emma # add note it was successfully tested on Debian sid # --- 39,44 ---- diff -cr /tmp/postfix-1.1.0/html/backstage.html ./html/backstage.html *** /tmp/postfix-1.1.0/html/backstage.html Wed Feb 28 10:50:33 2001 --- ./html/backstage.html Fri Jan 18 08:47:47 2002 *************** *** 62,69 ****
  • The flush daemon improves the performance of the SMTP ETRN request, and of its command-line equivalent, sendmail -qRdestination, for selected ! destinations. For other destinations, Postfix silently falls ! back to the equivalent of sendmail -q.

    --- 62,68 ----

  • The flush daemon improves the performance of the SMTP ETRN request, and of its command-line equivalent, sendmail -qRdestination, for selected ! destinations.

    diff -cr /tmp/postfix-1.1.0/html/postmap.1.html ./html/postmap.1.html *** /tmp/postfix-1.1.0/html/postmap.1.html Sun Dec 23 21:01:10 2001 --- ./html/postmap.1.html Tue Jan 22 11:25:29 2002 *************** *** 16,21 **** --- 16,25 ---- makemap file_type file_name < file_name + If the result files do not exist they will be created with + the same group and other read permissions as the source + file. + While the table update is in progress, signal delivery is postponed, and an exclusive, advisory, lock is placed on the entire table, in order to avoid surprises in spectator diff -cr /tmp/postfix-1.1.0/html/postqueue.1.html ./html/postqueue.1.html *** /tmp/postfix-1.1.0/html/postqueue.1.html Sat Jan 5 20:00:36 2002 --- ./html/postqueue.1.html Tue Jan 22 11:04:43 2002 *************** *** 18,24 **** The following options are recognized: ! -c The main.cf configuration file is in the named directory instead of the default configuration directory. See also the MAIL_CONFIG environment setting below. --- 18,25 ---- The following options are recognized: ! -c config_dir ! The main.cf configuration file is in the named directory instead of the default configuration directory. See also the MAIL_CONFIG environment setting below. diff -cr /tmp/postfix-1.1.0/html/security.html ./html/security.html *** /tmp/postfix-1.1.0/html/security.html Sun Dec 30 17:19:24 2001 --- ./html/security.html Fri Jan 18 08:57:09 2002 *************** *** 82,89 **** Initially, the maildrop queue directory was world-writable, so that local processes could submit mail without assistance from a set-uid or set-gid command or from a mail daemon process. The ! maildrop directory was never used for mail coming in via the network, ! and its queue files were never not readable for other users.

    --- 82,89 ---- Initially, the maildrop queue directory was world-writable, so that local processes could submit mail without assistance from a set-uid or set-gid command or from a mail daemon process. The ! maildrop directory was not used for mail coming in via the network, ! and its queue files were not readable for unprivileged users.

    diff -cr /tmp/postfix-1.1.0/html/transport.5.html ./html/transport.5.html *** /tmp/postfix-1.1.0/html/transport.5.html Sun Jan 6 18:02:35 2002 --- ./html/transport.5.html Sun Jan 20 13:38:35 2002 *************** *** 149,155 **** details and for default values. Use the postfix reload command after a configuration change. ! parent_domain_matches_subdomains (versions >= 20011119) List of Postfix features that use domain.name pat- terns to match sub.domain.name (as opposed to requiring .domain.name patterns). --- 149,155 ---- details and for default values. Use the postfix reload command after a configuration change. ! parent_domain_matches_subdomains List of Postfix features that use domain.name pat- terns to match sub.domain.name (as opposed to requiring .domain.name patterns). diff -cr /tmp/postfix-1.1.0/html/uce.html ./html/uce.html *** /tmp/postfix-1.1.0/html/uce.html Tue Nov 27 12:18:25 2001 --- ./html/uce.html Fri Jan 18 07:54:32 2002 *************** *** 162,168 **** By default, this restriction is applied when the client sends the RCPT TO command. In order to have the restriction take effect ! as soon as possible, specify smtpd_delay_reject = yes in the Postfix main.cf configuration file. Doing so may cause unexpected results with poorly implemented client software. --- 162,168 ---- By default, this restriction is applied when the client sends the RCPT TO command. In order to have the restriction take effect ! as soon as possible, specify smtpd_delay_reject = no in the Postfix main.cf configuration file. Doing so may cause unexpected results with poorly implemented client software. *************** *** 560,566 **** !

    reject_sender_login_mismatch (Postfix versions >= 20011125)
    Reject the request when $smtpd_sender_owner_maps specifies an owner for the MAIL FROM --- 560,566 ---- !
    reject_sender_login_mismatch
    Reject the request when $smtpd_sender_owner_maps specifies an owner for the MAIL FROM *************** *** 1021,1027 **** !
    warn_if_reject (Postfix versions 20011119 and later)
    Change the meaning of the next restriction, so that it logs a warning instead of rejecting a request (look for logfile records that contain "reject_warning"). This is useful for testing new --- 1021,1027 ---- !
    warn_if_reject
    Change the meaning of the next restriction, so that it logs a warning instead of rejecting a request (look for logfile records that contain "reject_warning"). This is useful for testing new diff -cr /tmp/postfix-1.1.0/man/man1/postmap.1 ./man/man1/postmap.1 *** /tmp/postfix-1.1.0/man/man1/postmap.1 Sun Dec 23 21:01:00 2001 --- ./man/man1/postmap.1 Tue Jan 22 11:25:28 2002 *************** *** 22,27 **** --- 22,30 ---- .ti +4 \fBmakemap \fIfile_type\fR \fIfile_name\fR < \fIfile_name\fR + If the result files do not exist they will be created with the + same group and other read permissions as the source file. + While the table update is in progress, signal delivery is postponed, and an exclusive, advisory, lock is placed on the entire table, in order to avoid surprises in spectator diff -cr /tmp/postfix-1.1.0/man/man1/postqueue.1 ./man/man1/postqueue.1 *** /tmp/postfix-1.1.0/man/man1/postqueue.1 Sat Jan 5 20:00:27 2002 --- ./man/man1/postqueue.1 Tue Jan 22 11:04:43 2002 *************** *** 21,27 **** traditionally available via the \fBsendmail\fR(1) command. The following options are recognized: ! .IP \fB-c \fIconfig_dir\fR The \fBmain.cf\fR configuration file is in the named directory instead of the default configuration directory. See also the MAIL_CONFIG environment setting below. --- 21,27 ---- traditionally available via the \fBsendmail\fR(1) command. The following options are recognized: ! .IP "\fB-c \fIconfig_dir\fR" The \fBmain.cf\fR configuration file is in the named directory instead of the default configuration directory. See also the MAIL_CONFIG environment setting below. diff -cr /tmp/postfix-1.1.0/man/man5/transport.5 ./man/man5/transport.5 *** /tmp/postfix-1.1.0/man/man5/transport.5 Sun Jan 6 18:02:34 2002 --- ./man/man5/transport.5 Sun Jan 20 13:38:35 2002 *************** *** 155,161 **** this topic. See the Postfix \fBmain.cf\fR file for syntax details and for default values. Use the \fBpostfix reload\fR command after a configuration change. ! .IP "\fBparent_domain_matches_subdomains\fR (versions >= 20011119)" List of Postfix features that use \fIdomain.name\fR patterns to match \fIsub.domain.name\fR (as opposed to requiring \fI.domain.name\fR patterns). --- 155,161 ---- this topic. See the Postfix \fBmain.cf\fR file for syntax details and for default values. Use the \fBpostfix reload\fR command after a configuration change. ! .IP \fBparent_domain_matches_subdomains\fR List of Postfix features that use \fIdomain.name\fR patterns to match \fIsub.domain.name\fR (as opposed to requiring \fI.domain.name\fR patterns). diff -cr /tmp/postfix-1.1.0/proto/transport ./proto/transport *** /tmp/postfix-1.1.0/proto/transport Sun Jan 6 18:02:24 2002 --- ./proto/transport Sun Jan 20 13:38:26 2002 *************** *** 141,147 **** # this topic. See the Postfix \fBmain.cf\fR file for syntax details # and for default values. Use the \fBpostfix reload\fR command after # a configuration change. ! # .IP "\fBparent_domain_matches_subdomains\fR (versions >= 20011119)" # List of Postfix features that use \fIdomain.name\fR patterns # to match \fIsub.domain.name\fR (as opposed to # requiring \fI.domain.name\fR patterns). --- 141,147 ---- # this topic. See the Postfix \fBmain.cf\fR file for syntax details # and for default values. Use the \fBpostfix reload\fR command after # a configuration change. ! # .IP \fBparent_domain_matches_subdomains\fR # List of Postfix features that use \fIdomain.name\fR patterns # to match \fIsub.domain.name\fR (as opposed to # requiring \fI.domain.name\fR patterns). diff -cr /tmp/postfix-1.1.0/src/global/resolve_local.c ./src/global/resolve_local.c *** /tmp/postfix-1.1.0/src/global/resolve_local.c Tue Nov 20 16:41:26 2001 --- ./src/global/resolve_local.c Fri Jan 18 09:06:51 2002 *************** *** 2,15 **** /* NAME /* resolve_local 3 /* SUMMARY ! /* determine if address resolves to local mail system /* SYNOPSIS /* #include /* /* void resolve_local_init() /* ! /* int resolve_local(host) ! /* const char *host; /* DESCRIPTION /* resolve_local() determines if the named domain resolves to the /* local mail system, either by case-insensitive exact match --- 2,15 ---- /* NAME /* resolve_local 3 /* SUMMARY ! /* determine if domain resolves to local mail system /* SYNOPSIS /* #include /* /* void resolve_local_init() /* ! /* int resolve_local(domain) ! /* const char *domain; /* DESCRIPTION /* resolve_local() determines if the named domain resolves to the /* local mail system, either by case-insensitive exact match *************** *** 73,79 **** resolve_local_list = string_list_init(MATCH_FLAG_NONE, var_mydest); } ! /* resolve_local - match address against list of local destinations */ int resolve_local(const char *addr) { --- 73,79 ---- resolve_local_list = string_list_init(MATCH_FLAG_NONE, var_mydest); } ! /* resolve_local - match domain against list of local destinations */ int resolve_local(const char *addr) { *************** *** 91,96 **** --- 91,98 ---- * Strip one trailing dot. */ len = strlen(saved_addr); + if (len == 0) + msg_panic("resolve_local: null domain"); if (saved_addr[len - 1] == '.') saved_addr[--len] = 0; diff -cr /tmp/postfix-1.1.0/src/postconf/Makefile.in ./src/postconf/Makefile.in *** /tmp/postfix-1.1.0/src/postconf/Makefile.in Tue Jan 15 10:25:32 2002 --- ./src/postconf/Makefile.in Thu Jan 17 19:16:30 2002 *************** *** 38,44 **** ../../bin/$(PROG): $(PROG) cp $(PROG) ../../bin ! $(MAKES): $(INC_DIR)/mail_params.h $(AWK) -f extract.awk ../*/*.c printfck: $(OBJS) $(PROG) --- 38,44 ---- ../../bin/$(PROG): $(PROG) cp $(PROG) ../../bin ! $(MAKES): $(INC_DIR)/mail_params.h ../global/mail_params.c $(AWK) -f extract.awk ../*/*.c printfck: $(OBJS) $(PROG) diff -cr /tmp/postfix-1.1.0/src/postmap/postmap.c ./src/postmap/postmap.c *** /tmp/postfix-1.1.0/src/postmap/postmap.c Sun Dec 23 19:41:08 2001 --- ./src/postmap/postmap.c Tue Jan 22 11:19:48 2002 *************** *** 16,21 **** --- 16,24 ---- /* .ti +4 /* \fBmakemap \fIfile_type\fR \fIfile_name\fR < \fIfile_name\fR /* + /* If the result files do not exist they will be created with the + /* same group and other read permissions as the source file. + /* /* While the table update is in progress, signal delivery is /* postponed, and an exclusive, advisory, lock is placed on the /* entire table, in order to avoid surprises in spectator *************** *** 185,190 **** --- 188,195 ---- int lineno; char *key; char *value; + struct stat st; + mode_t saved_mask; /* * Initialize. *************** *** 196,201 **** --- 201,214 ---- } else if ((source_fp = vstream_fopen(path_name, O_RDONLY, 0)) == 0) { msg_fatal("open %s: %m", path_name); } + if (fstat(vstream_fileno(source_fp), &st) < 0) + msg_fatal("fstat %s: %m", path_name); + + /* + * Turn off group/other read permissions as indicated in the source file. + */ + if (S_ISREG(st.st_mode)) + saved_mask = umask(022 | (~st.st_mode & 077)); /* * Open the database, optionally create it when it does not exist, *************** *** 203,208 **** --- 216,227 ---- * spectators. */ mkmap = mkmap_open(map_type, path_name, open_flags, dict_flags); + + /* + * And restore the umask, in case it matters. + */ + if (S_ISREG(st.st_mode)) + umask(saved_mask); /* * Add records to the database. diff -cr /tmp/postfix-1.1.0/src/postqueue/postqueue.c ./src/postqueue/postqueue.c *** /tmp/postfix-1.1.0/src/postqueue/postqueue.c Thu Jan 3 15:44:19 2002 --- ./src/postqueue/postqueue.c Tue Jan 22 09:23:43 2002 *************** *** 15,21 **** /* traditionally available via the \fBsendmail\fR(1) command. /* /* The following options are recognized: ! /* .IP \fB-c \fIconfig_dir\fR /* The \fBmain.cf\fR configuration file is in the named directory /* instead of the default configuration directory. See also the /* MAIL_CONFIG environment setting below. --- 15,21 ---- /* traditionally available via the \fBsendmail\fR(1) command. /* /* The following options are recognized: ! /* .IP "\fB-c \fIconfig_dir\fR" /* The \fBmain.cf\fR configuration file is in the named directory /* instead of the default configuration directory. See also the /* MAIL_CONFIG environment setting below. *************** *** 354,367 **** */ if (site_to_flush != 0) { if (*site_to_flush == '[' ! && *(last = optarg + strlen(site_to_flush) - 1) == ']') { *last = 0; ! if (!valid_hostaddr(optarg + 1, DONT_GRIPE)) site_to_flush = 0; *last = ']'; } else { ! if (!valid_hostname(optarg, DONT_GRIPE) ! && !valid_hostaddr(optarg, DONT_GRIPE)) site_to_flush = 0; } if (site_to_flush == 0) --- 354,367 ---- */ if (site_to_flush != 0) { if (*site_to_flush == '[' ! && *(last = site_to_flush + strlen(site_to_flush) - 1) == ']') { *last = 0; ! if (!valid_hostaddr(site_to_flush + 1, DONT_GRIPE)) site_to_flush = 0; *last = ']'; } else { ! if (!valid_hostname(site_to_flush, DONT_GRIPE) ! && !valid_hostaddr(site_to_flush, DONT_GRIPE)) site_to_flush = 0; } if (site_to_flush == 0) diff -cr /tmp/postfix-1.1.0/src/smtpd/smtpd_check.c ./src/smtpd/smtpd_check.c *** /tmp/postfix-1.1.0/src/smtpd/smtpd_check.c Wed Jan 16 13:23:11 2002 --- ./src/smtpd/smtpd_check.c Tue Jan 22 09:52:15 2002 *************** *** 2151,2161 **** if (cpp[1] != 0 && state->warn_if_reject == 0) msg_warn("restriction `%s' after `%s' is ignored", cpp[1], CHECK_RELAY_DOMAINS); - #ifdef USE_SASL_AUTH } else if (strcasecmp(name, PERMIT_SASL_AUTH) == 0) { if (var_smtpd_sasl_enable) status = permit_sasl_auth(state, SMTPD_CHECK_OK, SMTPD_CHECK_DUNNO); #endif } else if (strcasecmp(name, REJECT_UNKNOWN_RCPTDOM) == 0) { if (state->recipient) --- 2151,2163 ---- if (cpp[1] != 0 && state->warn_if_reject == 0) msg_warn("restriction `%s' after `%s' is ignored", cpp[1], CHECK_RELAY_DOMAINS); } else if (strcasecmp(name, PERMIT_SASL_AUTH) == 0) { if (var_smtpd_sasl_enable) + #ifdef USE_SASL_AUTH status = permit_sasl_auth(state, SMTPD_CHECK_OK, SMTPD_CHECK_DUNNO); + #else + msg_warn("restriction `%s' ignored: no SASL support", name); #endif } else if (strcasecmp(name, REJECT_UNKNOWN_RCPTDOM) == 0) { if (state->recipient) diff -cr /tmp/postfix-1.1.0/src/util/vstream.c ./src/util/vstream.c *** /tmp/postfix-1.1.0/src/util/vstream.c Sun Sep 9 20:39:23 2001 --- ./src/util/vstream.c Tue Jan 22 09:49:09 2002 *************** *** 72,77 **** --- 72,80 ---- /* int vstream_fileno(stream) /* VSTREAM *stream; /* + /* void *vstream_context(stream) + /* VSTREAM *stream; + /* /* int vstream_ferror(stream) /* VSTREAM *stream; /* *************** *** 249,254 **** --- 252,260 ---- /* vstream_fileno() gives access to the file handle associated with /* a buffered stream. With streams that have separate read/write /* file descriptors, the result is the current descriptor. + /* + /* vstream_context() returns the application context that is passed on to + /* the application-specified read/write routines. /* /* VSTREAM_PATH() is an unsafe macro that returns the name stored /* with vstream_fopen() or with vstream_control(). The macro is diff -cr /tmp/postfix-1.1.0/src/util/vstream.h ./src/util/vstream.h *** /tmp/postfix-1.1.0/src/util/vstream.h Fri Dec 8 19:06:10 2000 --- ./src/util/vstream.h Tue Jan 22 09:49:09 2002 *************** *** 90,95 **** --- 90,96 ---- #define VSTREAM_GETCHAR() VSTREAM_GETC(VSTREAM_IN) #define vstream_fileno(vp) ((vp)->fd) + #define vstream_context(vp) ((vp)->context) #define vstream_ferror(vp) vbuf_error(&(vp)->buf) #define vstream_feof(vp) vbuf_eof(&(vp)->buf) #define vstream_ftimeout(vp) vbuf_timeout(&(vp)->buf)