Rev 1.141 of smtpctl.c killed mail queueing for me:

        $ echo "test" | mail -s test sparkhom
        $ send-mail: unknown option -- i
        send-mail: unknown option -- t
        send-mail: no recipients

The sendmail option parsing that was added eats the recipient list. I
have attached a patch that fixes this issue, and also quiets the getopt
"unknown option" errors, as most options are processed later.

Index: smtpctl.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/smtpctl.c,v
retrieving revision 1.142
diff -u -p -r1.142 smtpctl.c
--- smtpctl.c   22 Dec 2015 15:59:10 -0000      1.142
+++ smtpctl.c   22 Dec 2015 20:37:48 -0000
@@ -990,6 +990,7 @@ main(int argc, char **argv)
                 * determine whether we are called with flags
                 * that should invoke makemap/newaliases.
                 */
+               opterr = 0;
                while ((ch = getopt(argc, argv, "b:C:O:")) != -1) {
                        switch (ch) {
                        case 'b':
@@ -1006,10 +1007,13 @@ main(int argc, char **argv)
                                break;
                        }
                }
-               argc -= optind;
-               argv += optind;
-               optind = 0;
+               opterr = 1;
+
                if (sendmail_makemap) {
+                       argc -= optind;
+                       argv += optind;
+                       optind = 0;
+
                        memset(&args, 0, sizeof args);
                        addargs(&args, "%s", "makemap");
                        for (i = 0; i < argc; i++)
@@ -1021,6 +1025,7 @@ main(int argc, char **argv)
 
                        return makemap(args.num, args.list);
                }
+               optind = 0;
 
                if (!srv_connect())
                        offlinefp = offline_file();

Reply via email to