Re: [Exim] [Fwd: Bug#184027: exim: wrong mailbox file uid wi…

Página superior
Eliminar este mensaje
Responder a este mensaje
Autor: Philip Hazel
Fecha:  
A: Mark Baker
Cc: exim-users
Asunto: Re: [Exim] [Fwd: Bug#184027: exim: wrong mailbox file uid with errors_to set]
On Mon, 10 Mar 2003, Mark Baker wrote:

> > I will investigate this in the Exim 4 context.
>
> Thankyou. I believe the same issue exists in exim 4.


The bug is fixed in Exim 4.14, which I hope to release on Wednesday
(just running it here for a bit first).

For Exim 3, I believe the patch below (against 3.36) fixes the problem.
This is a heavy-handed, minimal patch. (The Exim 4 fix is done
"properly", but this area has changed a lot in Exim 4, so it is not
applicable to Exim 3.)

Philip

--
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.





*** exim-3.36/src/directors/localuser.c     Thu Apr  4 13:56:17 2002
--- directors/localuser.c    Mon Mar 10 12:07:04 2003
***************
*** 118,128 ****
    if (rc != OK) return rc;
    }


- /* Set up the errors address, if any. */
-
- rc = direct_get_errors_address(addr, dblock, "director", verify, &errors_to);
- if (rc != OK) return rc;
-
/* Set up the additional and removeable headers for the address. */

  rc = direct_get_munge_headers(addr, dblock, "director", &extra_headers,
--- 118,123 ----
***************
*** 136,142 ****
  if (!route_get_transport(dblock->transport, dblock->expand_transport,
    addr, &(addr->transport), dblock->name, NULL)) return ERROR;


- addr->errors_address = errors_to;
addr->extra_headers = extra_headers;
addr->remove_headers = remove_headers;

--- 131,136 ----
***************
*** 152,157 ****
--- 146,157 ----

addr->current_dir = dblock->current_directory;

+ /* Set up the errors address, if any. */
+
+ rc = direct_get_errors_address(addr, dblock, "director", verify, &errors_to);
+ if (rc != OK) return rc;
+ addr->errors_address = errors_to;
+
  return route_queue(addr, addr_local, addr_remote, (router_instance *)dblock,
    NULL, "director")? OK : ERROR;
  }