/* Copyright (c) University of Cambridge 1995 - 2018 */
/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include "../exim.h"
#include "rf_functions.h"
*/
int
-rf_get_errors_address(address_item *addr, router_instance *rblock,
- int verify, uschar **errors_to)
+rf_get_errors_address(address_item * addr, router_instance * rblock,
+ int verify, const uschar ** errors_to)
{
-uschar *s;
+uschar * s;
*errors_to = addr->prop.errors_address;
-if (rblock->errors_to == NULL) return OK;
+if (!rblock->errors_to) return OK;
-s = expand_string(rblock->errors_to);
-
-if (s == NULL)
+GET_OPTION("errors_to");
+if (!(s = expand_string(rblock->errors_to)))
{
if (f.expand_string_forcedfail)
{
/* If the errors_to address is empty, it means "ignore errors" */
-if (*s == 0)
+if (!*s)
{
addr->prop.ignore_error = TRUE; /* For locally detected errors */
*errors_to = US""; /* Return path for SMTP */
else
{
BOOL save_address_test_mode = f.address_test_mode;
- int save1 = 0;
+ const uschar * save_sender = sender_address;
int i;
const uschar ***p;
const uschar *address_expansions_save[ADDRESS_EXPANSIONS_COUNT];
address_item *snew = deliver_make_addr(s, FALSE);
if (sender_address)
- {
- save1 = sender_address[0];
- sender_address[0] = 0;
- }
+ sender_address = US"";
for (i = 0, p = address_expansions; *p;)
address_expansions_save[i++] = **p++;
for (i = 0, p = address_expansions; *p; )
**p++ = address_expansions_save[i++];
- if (sender_address) sender_address[0] = save1;
+ sender_address = save_sender;
}
return OK;