Code derived from Mrs. Brisbys SMTP AUTH patch contains the following:

  switch ((pid=fork())) {
    case -1: die_nomem();
    case 0: close(fds[1]);
      fd_copy(3,fds[0]);
      execvp(smtpauth_argv[1], smtpauth_argv+1);
      die_nomem();
  };

Do not do that - replace the die_nomem() line with a simple _exit(1).

Problem: This leads to _two_ error lines if the execvp fails, thus
breaking the SMTP protocol.
 
        220 ohse.de ESMTP
        auth login plain
        334 UGFzc3dvcmQ6
        test
        421 out of memory (#4.3.0)
        535 auth failure
        quit
        221 ohse.de

Regards, Uwe (forced by management to implement the SMTP AUTH on one
              of our machines)

Reply via email to