Transports: explicit errno values in returns
[exim.git] / src / src / transports / pipe.c
index 4386a9ae625b8fd54772a86bc9bc4c5040d74c6c..a16a197a4cfa571dc4eb7d2ea034bf0cd0aa69b6 100644 (file)
@@ -686,8 +686,7 @@ else if (timezone_string != NULL && timezone_string[0] != 0)
 
 if (envlist)
   {
-  envlist = expand_cstring(envlist);
-  if (envlist == NULL)
+  if (!(envlist = expand_cstring(envlist)))
     {
     addr->transport_return = DEFER;
     addr->message = string_sprintf("failed to expand string \"%s\" "
@@ -702,6 +701,7 @@ while ((ss = string_nextinlist(&envlist, &envsep, big_buffer, big_buffer_size)))
    if (envcount > nelem(envp) - 2)
      {
      addr->transport_return = DEFER;
+     addr->basic_errno = E2BIG;
      addr->message = string_sprintf("too many environment settings for "
        "%s transport", tblock->name);
      return FALSE;