SPDX: Mass-update to GPL-2.0-or-later
[exim.git] / src / src / transports / lmtp.c
index 32c57166c7bb9bb6bcac18a72b02040eaa62a753..e04c991ab703da149bc200adb1d6324c282f9f9f 100644 (file)
@@ -2,8 +2,10 @@
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
+/* Copyright (c) The Exim Maintainers 2020 - 2022 */
 /* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 
 
 #include "../exim.h"
@@ -488,8 +490,8 @@ if (ob->cmd)
   {
   DEBUG(D_transport) debug_printf("using command %s\n", ob->cmd);
   sprintf(CS buffer, "%.50s transport", tblock->name);
-  if (!transport_set_up_command(&argv, ob->cmd, TRUE, PANIC, addrlist, buffer,
-       NULL))
+  if (!transport_set_up_command(&argv, ob->cmd, TRUE, PANIC, addrlist, FALSE,
+       buffer, NULL))
     return FALSE;
 
   /* If the -N option is set, can't do any more. Presume all has gone well. */
@@ -500,7 +502,8 @@ if (ob->cmd)
 uid/gid and current directory. Request that the new process be a process group
 leader, so we can kill it and all its children on an error. */
 
-  if ((pid = child_open(USS argv, NULL, 0, &fd_in, &fd_out, TRUE)) < 0)
+  if ((pid = child_open(USS argv, NULL, 0, &fd_in, &fd_out, TRUE,
+                       US"lmtp-tpt-cmd")) < 0)
     {
     addrlist->message = string_sprintf(
       "Failed to create child process for %s transport: %s", tblock->name,
@@ -514,8 +517,7 @@ leader, so we can kill it and all its children on an error. */
 else
   {
   DEBUG(D_transport) debug_printf("using socket %s\n", ob->skt);
-  sockname = expand_string(ob->skt);
-  if (sockname == NULL)
+  if (!(sockname = expand_string(ob->skt)))
     {
     addrlist->message = string_sprintf("Expansion of \"%s\" (socket setting "
       "for %s transport) failed: %s", ob->skt, tblock->name,
@@ -557,23 +559,23 @@ allows for message+recipient checks after the message has been received. */
 /* First thing is to wait for an initial greeting. */
 
 Ustrcpy(big_buffer, US"initial connection");
-if (!lmtp_read_response(out, buffer, sizeof(buffer), '2',
-  timeout)) goto RESPONSE_FAILED;
+if (!lmtp_read_response(out, buffer, sizeof(buffer), '2', timeout))
+  goto RESPONSE_FAILED;
 
 /* Next, we send a LHLO command, and expect a positive response */
 
-if (!lmtp_write_command(fd_in, "%s %s\r\n", "LHLO",
-  primary_hostname)) goto WRITE_FAILED;
+if (!lmtp_write_command(fd_in, "%s %s\r\n", "LHLO", primary_hostname))
+  goto WRITE_FAILED;
 
-if (!lmtp_read_response(out, buffer, sizeof(buffer), '2',
-     timeout)) goto RESPONSE_FAILED;
+if (!lmtp_read_response(out, buffer, sizeof(buffer), '2', timeout))
+  goto RESPONSE_FAILED;
 
 /* If the ignore_quota option is set, note whether the server supports the
 IGNOREQUOTA option, and if so, set an appropriate addition for RCPT. */
 
 if (ob->ignore_quota)
-  igquotstr = (pcre_exec(regex_IGNOREQUOTA, NULL, CS buffer,
-    Ustrlen(CS buffer), 0, PCRE_EOPT, NULL, 0) >= 0)? US" IGNOREQUOTA" : US"";
+  igquotstr = regex_match(regex_IGNOREQUOTA, buffer, -1, NULL)
+    ? US" IGNOREQUOTA" : US"";
 
 /* Now the envelope sender */