Re: [exim] Clarification on detainting in exim 4.94 router

Top Page
Delete this message
Reply to this message
Author: adam
Date:  
To: Jeremy Harris
CC: exim-users
Subject: Re: [exim] Clarification on detainting in exim 4.94 router
Thanks Jeremy. I tried the following, and $local_part_data is blank.

Best,
Adam

# router
request_tracker:
   driver            = redirect
   domains           = rt.example.com
   local_parts       = /usr/local/etc/exim/queuenames/list.of.requestors
   local_part_suffix = -comment
   local_part_suffix_optional
   pipe_transport    = request_tracker_pipe
   data              =   "|/usr/local/bin/rt-mailgate \
                         --queue \"${local_part_data}\" \
                         --action ${substr_1:${if 
eq{$local_part_suffix}{} \
                         {-correspond}{$local_part_suffix}} } \
                         --url http://rt.example.com"
   user              = mailnull


# transport
request_tracker_pipe:
   driver         = pipe
   return_fail_output
   allow_commands = /usr/local/bin/rt-mailgate


On 2021-01-29 11:25, Jeremy Harris via Exim-users wrote:
> On 28/01/2021 03:20, Adam via Exim-users wrote:
>> There's an issue here with $local_part. Isn't it detainted by the use
>> of local_parts to only run this if $local_part was found in the file?
>
> No. The "lookup" (in a general sense including, relevant here, a
> search in a list
> that happens be one element that indirects to a file) done by the
> "localparts="
> option sets a variable called "local_part_data" with an untainted
> value.
> The variable "local_part" is unchanged, carrying tainted data.
>
>> $local_part_data is blank.
>
> At what point in the flow did you check this?
> --
> Cheers,
> Jeremy