]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
snapshot-19990324
authorWietse Venema <wietse@porcupine.org>
Wed, 24 Mar 1999 05:00:00 +0000 (00:00 -0500)
committerWietse Venema <wietse@porcupine.org>
Thu, 17 Jan 2013 03:33:59 +0000 (22:33 -0500)
40 files changed:
postfix/.indent.pro
postfix/HISTORY
postfix/bounce/.indent.pro
postfix/cleanup/.indent.pro
postfix/conf/postfix-script-nosgid
postfix/conf/postfix-script-sgid
postfix/dns/.indent.pro
postfix/fsstone/.indent.pro
postfix/global/.indent.pro
postfix/global/mail_params.h
postfix/global/mail_version.h
postfix/html/local.8.html
postfix/local/.indent.pro
postfix/local/Makefile.in
postfix/local/dotforward.c
postfix/local/local.c
postfix/local/recipient.c
postfix/man/man8/local.8
postfix/master/.indent.pro
postfix/pickup/.indent.pro
postfix/pipe/.indent.pro
postfix/postalias/.indent.pro
postfix/postcat/.indent.pro
postfix/postconf/.indent.pro
postfix/postdrop/.indent.pro
postfix/postfix/.indent.pro
postfix/postkick/.indent.pro
postfix/postlock/.indent.pro
postfix/postlog/.indent.pro
postfix/postmap/.indent.pro
postfix/postsuper/.indent.pro
postfix/qmgr/.indent.pro
postfix/sendmail/.indent.pro
postfix/showq/.indent.pro
postfix/smtp/.indent.pro
postfix/smtpd/.indent.pro
postfix/smtpd/smtpd_check.c
postfix/smtpstone/.indent.pro
postfix/trivial-rewrite/.indent.pro
postfix/util/.indent.pro

index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index fa3b5c41d2350f43f54a8cefff9d349d2b165b9b..d086c75c6c68a1308b8e84f29a07b2493915c9f7 100644 (file)
@@ -2413,6 +2413,17 @@ Apologies for any names omitted.
        and would go through .forward again). Problem reported by
        Roman Dolejsi, Prague University of Economics.
 
+19990324
+
+       Bugfix: missing map name in check_xxx_access restrictions
+       could casue a segmentation error. Lamont Jones, Hewlett-
+       Packard.
+
+       Feature: forward_path configuration parameter (default:
+       $home/.forward$recipient_delimiter$extension,$home/.forward).
+       Based on initial code by Philip A.  Prindeville, Mirapoint,
+       Inc., USA.  Files:  local/dotforward.c.
+
 Future:
 
        Planned: must be able to list the same hash table in
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index f46984aaeaf27138a3c50a3ffa8cd992888b639e..41a59bb889d594957bdda4be6b91c747da88a25b 100755 (executable)
@@ -165,7 +165,7 @@ check)
                -exec $WARN not owned by root: {} \;
 
        find $daemon_directory/. $config_directory/. \
-               \( -perm -020 -or -perm -002 \) \
+               \( -perm -020 -o -perm -002 \) \
                -exec $WARN group or other writable: {} \;
 
        find $queue_directory/* $config_directory/* -name '*core' \
index f6ddf6f192fc5fe4232bfbc73516a73dde64a9b8..56fdb263bd7dbabe87f0a9eb1d56d1a2d43f1682 100755 (executable)
@@ -165,7 +165,7 @@ check)
                -exec $WARN not owned by root: {} \;
 
        find $daemon_directory/. $config_directory/. \
-               \( -perm -020 -or -perm -002 \) \
+               \( -perm -020 -o -perm -002 \) \
                -exec $WARN group or other writable: {} \;
 
        find $queue_directory/* $config_directory/* -name '*core' \
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b18de0e081f0fb1053f5e0e3bbea6f6e4dc9047c..ef3f83f60c50b865207e377ccc312a6e43b045e3 100644 (file)
@@ -306,7 +306,7 @@ extern char *var_fallback_transport;
   * Local delivery: path to per-user forwarding file.
   */
 #define VAR_FORWARD_PATH       "forward_path"
-#define DEF_FORWARD_PATH       "$home/.forward"
+#define DEF_FORWARD_PATH       "$home/.forward${recipient_delimiter}${extension},$home/.forward"
 extern char *var_forward_path;
 
 #define VAR_RCPT_DELIM         "recipient_delimiter"
index d1240368d1a7cf1af6b311bff3fceeffdfb03ea2..55012855ba045ef97454d43f910ba94333f01df1 100644 (file)
@@ -15,7 +15,7 @@
   * Version of this program.
   */
 #define VAR_MAIL_VERSION       "mail_version"
-#define DEF_MAIL_VERSION       "Snapshot-19990323"
+#define DEF_MAIL_VERSION       "Snapshot-19990324"
 extern char *var_mail_version;
 
 /* LICENSE
index dbc3cffcc413d8746f293791fb0166a709991ffc..3b06a2cecd990e7496332613f4cf9353a13acda2 100644 (file)
@@ -252,11 +252,11 @@ LOCAL(8)                                                 LOCAL(8)
        <b>alias</b><i>_</i><b>maps</b>
               List of alias databases.
 
-       <b>local</b><i>_</i><b>command</b><i>_</i><b>shell</b>
-              Shell to use for external  command  execution  (for
-              example,  /some/where/smrsh  -c).   When a shell is
-              specified, it is invoked even when the command con-
-              tains   no   shell   built-in   commands   or  meta
+       <b>forward</b><i>_</i><b>path</b>
+              Search list  for  .forward  files.   The  following
+              macros  are  recognized:  <b>$home</b>  (home  directory),
+              <b>$user</b> (login name), <b>$extension</b> (address extension),
+              <b>$recipient</b><i>_</i><b>delimiter</b> (address extension delimiter).
 
 
 
@@ -269,7 +269,12 @@ LOCAL(8)                                                 LOCAL(8)
 LOCAL(8)                                                 LOCAL(8)
 
 
-              characters.
+       <b>local</b><i>_</i><b>command</b><i>_</i><b>shell</b>
+              Shell to use for external  command  execution  (for
+              example,  /some/where/smrsh  -c).   When a shell is
+              specified, it is invoked even when the command con-
+              tains  no  shell  built-in commands or meta charac-
+              ters.
 
        <b>owner</b><i>_</i><b>request</b><i>_</i><b>special</b>
               Give special treatment to <b>owner-</b><i>xxx</i> and <i>xxx</i><b>-request</b>
@@ -319,11 +324,6 @@ LOCAL(8)                                                 LOCAL(8)
               Time  in  seconds  between  successive  attempts to
               acquire an exclusive lock.
 
-       <b>stale</b><i>_</i><b>lock</b><i>_</i><b>time</b>
-              Limit the time after which a stale lock is removed.
-
-
-
 
 
                                                                 5
@@ -335,6 +335,9 @@ LOCAL(8)                                                 LOCAL(8)
 LOCAL(8)                                                 LOCAL(8)
 
 
+       <b>stale</b><i>_</i><b>lock</b><i>_</i><b>time</b>
+              Limit the time after which a stale lock is removed.
+
 <b>Resource</b> <b>controls</b>
        <b>command</b><i>_</i><b>time</b><i>_</i><b>limit</b>
               Limit  the  amount of time for delivery to external
@@ -385,9 +388,6 @@ LOCAL(8)                                                 LOCAL(8)
        syslogd(8) system logging
        <a href="qmgr.8.html">qmgr(8)</a> queue manager
 
-<b>LICENSE</b>
-       The  Secure  Mailer  license must be distributed with this
-       software.
 
 
 
@@ -401,6 +401,10 @@ LOCAL(8)                                                 LOCAL(8)
 LOCAL(8)                                                 LOCAL(8)
 
 
+<b>LICENSE</b>
+       The  Secure  Mailer  license must be distributed with this
+       software.
+
 <b>AUTHOR(S)</b>
        Wietse Venema
        IBM T.J. Watson Research
@@ -449,10 +453,6 @@ LOCAL(8)                                                 LOCAL(8)
 
 
 
-
-
-
-
 
 
 
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index a1436e0ca60077f0fad77cdd2b8a4e38a238e6db..91c0f429ee95e23ecd9a9ad9e07f9393854b9992 100644 (file)
@@ -152,10 +152,12 @@ dotforward.o: ../include/lstat_as.h
 dotforward.o: ../include/iostuff.h
 dotforward.o: ../include/stringops.h
 dotforward.o: ../include/mymalloc.h
+dotforward.o: ../include/mac_parse.h
 dotforward.o: ../include/mypwd.h
 dotforward.o: ../include/bounce.h
 dotforward.o: ../include/been_here.h
 dotforward.o: ../include/mail_params.h
+dotforward.o: ../include/config.h
 dotforward.o: local.h
 dotforward.o: ../include/tok822.h
 dotforward.o: ../include/resolve_clnt.h
index 2c0f2c001144f3526480a8e3696b7d894e02bb67..2544f3fe5eb4193d995710bfe9e33f3ba762d9f7 100644 (file)
 /*     int     *statusp;
 /* DESCRIPTION
 /*     deliver_dotforward() delivers a message to the destinations
-/*     listed in a recipient's $HOME/.forward file.  The result is
-/*     zero when no acceptable $HOME/.forward file was found, or when
+/*     listed in a recipient's .forward file(s) as specified through
+/*     the forward_path configuration parameter.  The result is
+/*     zero when no acceptable .forward file was found, or when
 /*     a recipient is listed in her own .forward file.
 /*
-/*     When mail is sent to an extended address (e.g., user+foo),
-/*     the address extension is appended to the .forward file name
-/*     (e.g., .forward+foo). When that file does not exist, .forward
-/*     is used instead.
-/*
 /*     Arguments:
 /* .IP state
 /*     Message delivery attributes (sender, recipient etc.).
@@ -71,6 +67,7 @@
 #include <iostuff.h>
 #include <stringops.h>
 #include <mymalloc.h>
+#include <mac_parse.h>
 
 /* Global library. */
 
@@ -78,6 +75,7 @@
 #include <bounce.h>
 #include <been_here.h>
 #include <mail_params.h>
+#include <config.h>
 
 /* Application-specific. */
 
 #define NO     0
 #define YES    1
 
+ /*
+  * A little helper structure for message-specific context.
+  */
+typedef struct {
+    int     failures;                  /* $name not available */
+    struct mypasswd *pwd;              /* recipient */
+    char   *extension;                 /* address extension */
+    VSTRING *path;                     /* result */
+} FW_CONTEXT;
+
+/* dotforward_parse_callback - callback for mac_parse */
+
+static void dotforward_parse_callback(int type, VSTRING *buf, char *context)
+{
+    char   *myname = "dotforward_parse_callback";
+    FW_CONTEXT *fw_context = (FW_CONTEXT *) context;
+    char   *ptr;
+
+    /*
+     * Find out what data to substitute.
+     */
+    if (type == MAC_PARSE_VARNAME) {
+       if (strcmp(vstring_str(buf), "home") == 0)
+           ptr = fw_context->pwd->pw_dir;
+       else if (strcmp(vstring_str(buf), "user") == 0)
+           ptr = fw_context->pwd->pw_name;
+       else if (strcmp(vstring_str(buf), "extension") == 0)
+           ptr = fw_context->extension;
+       else if (strcmp(vstring_str(buf), "recipient_delimiter") == 0)
+           ptr = var_rcpt_delim;
+       else
+           msg_fatal("unknown macro $%s in %s", vstring_str(buf),
+                     VAR_FORWARD_PATH);
+    } else {
+       ptr = vstring_str(buf);
+    }
+
+    /*
+     * Append the data, or record that the data was not available.
+     */
+    if (msg_verbose)
+       msg_info("%s: %s = %s", myname, vstring_str(buf),
+                ptr ? ptr : "(unavailable)");
+    if (ptr == 0) {
+       fw_context->failures++;
+    } else {
+       vstring_strcat(fw_context->path, ptr);
+    }
+}
+
 /* deliver_dotforward - expand contents of .forward file */
 
 int     deliver_dotforward(LOCAL_STATE state, USER_ATTR usr_attr, int *statusp)
@@ -100,7 +148,11 @@ int     deliver_dotforward(LOCAL_STATE state, USER_ATTR usr_attr, int *statusp)
     int     forward_found = NO;
     int     lookup_status;
     int     addr_count;
-    char   *extension;
+    char   *saved_forward_path;
+    char   *lhs;
+    char   *next;
+    const char *forward_path;
+    FW_CONTEXT fw_context;
 
     /*
      * Make verbose logging easier to understand.
@@ -109,6 +161,16 @@ int     deliver_dotforward(LOCAL_STATE state, USER_ATTR usr_attr, int *statusp)
     if (msg_verbose)
        MSG_LOG_STATE(myname, state);
 
+    /*
+     * Skip this module if per-user forwarding is disabled. XXX We need to
+     * extend the config_XXX() interface to request no expansion of $names in
+     * the given value or in the default value.
+     */
+    if ((forward_path = config_lookup(VAR_FORWARD_PATH)) == 0)
+       forward_path = DEF_FORWARD_PATH;
+    if (*forward_path == 0)
+       return (NO);
+
     /*
      * DUPLICATE/LOOP ELIMINATION
      * 
@@ -173,36 +235,36 @@ int     deliver_dotforward(LOCAL_STATE state, USER_ATTR usr_attr, int *statusp)
      * Assume that usernames do not have file system meta characters. Open
      * the .forward file as the user. Ignore files that aren't regular files,
      * files that are owned by the wrong user, or files that have world write
-     * permission enabled. We take no special precautions to deal with home
-     * directories imported via NFS, because mailbox and .forward files
-     * should always be local to the host running the delivery process.
-     * Anything else is just asking for trouble when a server goes down
-     * (either the mailbox server or the home directory server).
-     * 
-     * With mail to user+foo, try ~/.forward+foo before ~/.forward. Ignore foo
-     * when it contains '/' or when forward+foo does not exist.
+     * permission enabled.
      */
 #define STR(x) vstring_str(x)
 
     status = 0;
     path = vstring_alloc(100);
-    extension = state.msg_attr.extension;
-    if (extension && strchr(extension, '/')) {
-       msg_warn("%s: address with illegal extension: %s",
-                state.msg_attr.queue_id, state.msg_attr.recipient);
-       extension = 0;
-    }
-    if (extension != 0) {
-       vstring_sprintf(path, "%s/.forward%c%s", mypwd->pw_dir,
-                       var_rcpt_delim[0], extension);
-       if ((lookup_status = lstat_as(STR(path), &st,
-                                     usr_attr.uid, usr_attr.gid)) < 0)
-           extension = 0;
-    }
-    if (extension == 0) {
-       vstring_sprintf(path, "%s/.forward", mypwd->pw_dir);
-       lookup_status = lstat_as(STR(path), &st, usr_attr.uid, usr_attr.gid);
+    saved_forward_path = mystrdup(forward_path);
+    next = saved_forward_path;
+
+    fw_context.pwd = mypwd;
+    fw_context.extension = state.msg_attr.extension;
+    fw_context.path = path;
+
+    lookup_status = -1;
+
+    while ((lhs = mystrtok(&next, ", \t\r\n")) != 0) {
+       fw_context.failures = 0;
+       VSTRING_RESET(path);
+       mac_parse(lhs, dotforward_parse_callback, (char *) &fw_context);
+       if (fw_context.failures == 0) {
+           lookup_status = lstat_as(STR(path), &st,
+                                    usr_attr.uid, usr_attr.gid);
+           if (msg_verbose)
+               msg_info("%s: path %s status %d", myname,
+                        STR(path), lookup_status);
+           if (lookup_status >= 0)
+               break;
+       }
     }
+
     if (lookup_status >= 0) {
        if (S_ISREG(st.st_mode) == 0) {
            msg_warn("file %s is not a regular file", STR(path));
@@ -228,6 +290,7 @@ int     deliver_dotforward(LOCAL_STATE state, USER_ATTR usr_attr, int *statusp)
      * Clean up.
      */
     vstring_free(path);
+    myfree(saved_forward_path);
     mypwfree(mypwd);
 
     *statusp = status;
index 1daed8a357f0586000c208382cdda384a6fecc1a..8102e68462557032d44ef37ef06350c8d30ccbea 100644 (file)
 /* .fi
 /* .IP \fBalias_maps\fR
 /*     List of alias databases.
+/* .IP \fBforward_path\fR
+/*     Search list for .forward files.  The following macros are recognized:
+/*     \fB$home\fR (home directory), \fB$user\fR (login name),
+/*     \fB$extension\fR (address extension), \fB$recipient_delimiter\fR
+/*     (address extension delimiter).
 /* .IP \fBlocal_command_shell\fR
 /*     Shell to use for external command execution (for example,
 /*     /some/where/smrsh -c).
@@ -370,6 +375,7 @@ int     var_biff;
 char   *var_mail_spool_dir;
 char   *var_mailbox_transport;
 char   *var_fallback_transport;
+char   *var_forward_path;
 
 int     local_cmd_deliver_mask;
 int     local_file_deliver_mask;
@@ -535,6 +541,15 @@ int     main(int argc, char **argv)
        0,
     };
 
+    /*
+     * XXX We need to extend the config_XXX() interface to request no $name
+     * expansion in a given value or in the default value.
+     */
+    static CONFIG_STR_TABLE straight_str_table[] = {
+       VAR_FORWARD_PATH, DEF_FORWARD_PATH, &var_forward_path, 0, 0,
+       0,
+    };
+
     single_server_main(argc, argv, local_service,
                       MAIL_SERVER_INT_TABLE, int_table,
                       MAIL_SERVER_STR_TABLE, str_table,
index 5ee0836fdd9950563e68c4dba08117c673943654..fd09619c8b8d90b3d8380e6cc7b62b2851776634 100644 (file)
@@ -127,6 +127,11 @@ static int deliver_switch(LOCAL_STATE state, USER_ATTR usr_attr)
     if (*var_rcpt_delim)
        state.msg_attr.extension =
            split_addr(state.msg_attr.local, *var_rcpt_delim);
+    if (state.msg_attr.extension && strchr(state.msg_attr.extension, '/')) {
+       msg_warn("%s: address with illegal extension: %s",
+                state.msg_attr.queue_id, state.msg_attr.recipient);
+       state.msg_attr.extension = 0;
+    }
     if (state.msg_attr.extension && deliver_alias(state, usr_attr, &status))
        return (status);
 
index d16dbd529b6be13510e7e4cf40f42bcc053f0cf0..1f521577844c9d8359b955e610229395e5a0ecac 100644 (file)
@@ -240,6 +240,11 @@ a configuration change.
 .fi
 .IP \fBalias_maps\fR
 List of alias databases.
+.IP \fBforward_path\fR
+Search list for .forward files.  The following macros are recognized:
+\fB$home\fR (home directory), \fB$user\fR (login name),
+\fB$extension\fR (address extension), \fB$recipient_delimiter\fR
+(address extension delimiter).
 .IP \fBlocal_command_shell\fR
 Shell to use for external command execution (for example,
 /some/where/smrsh -c).
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index 6c1b2f91627b4c6eedc12e644f0fe9ebd9b27bc3..705f5b4cfa614800ba2b5173aa762fc20cf736ee 100644 (file)
@@ -1106,7 +1106,7 @@ static int is_map_command(char *name, char *command, char ***argp)
      */
     if (strcasecmp(name, command) != 0) {
        return (0);
-    } else if (*argp == 0 || strchr(*(*argp += 1), ':') == 0) {
+    } else if (*(*argp + 1) == 0 || strchr(*(*argp += 1), ':') == 0) {
        msg_warn("restriction %s requires maptype:mapname", command);
        longjmp(smtpd_check_buf, -1);
     } else {
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO
index b38eded21dd1f4fcfd647ffbe74cf208d972e5a3..715b1fb48d3d338b47e149af697cf72397d48731 100644 (file)
@@ -35,6 +35,7 @@
 -TEXPAND_ATTR
 -TFILE
 -TFORWARD_INFO
+-TFW_CONTEXT
 -THEADER_OPTS
 -THTABLE
 -THTABLE_INFO