X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/f3ebb786e451da973560f1c9d8cdb151d25108b5..1d28cc061677bd07d9bed48dd84bd5c590247043:/src/src/tree.c diff --git a/src/src/tree.c b/src/src/tree.c index d5a409651..13fc28cc2 100644 --- a/src/src/tree.c +++ b/src/src/tree.c @@ -2,8 +2,10 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 2021 - 2022 */ /* Copyright (c) University of Cambridge 1995 - 2015 */ /* See the file NOTICE for conditions of use and distribution. */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ /* Functions for maintaining binary balanced trees and some associated functions as well. */ @@ -27,10 +29,10 @@ Returns: nothing */ void -tree_add_nonrecipient(uschar *s) +tree_add_nonrecipient(const uschar *s) { rmark rpoint = store_mark(); -tree_node *node = store_get(sizeof(tree_node) + Ustrlen(s), is_tainted(s)); +tree_node * node = store_get(sizeof(tree_node) + Ustrlen(s), s); Ustrcpy(node->name, s); node->data.ptr = NULL; if (!tree_insertnode(&tree_nonrecipients, node)) store_reset(rpoint); @@ -52,10 +54,10 @@ Returns: nothing */ void -tree_add_duplicate(uschar *s, address_item *addr) +tree_add_duplicate(const uschar *s, address_item *addr) { rmark rpoint = store_mark(); -tree_node *node = store_get(sizeof(tree_node) + Ustrlen(s), is_tainted(s)); +tree_node * node = store_get(sizeof(tree_node) + Ustrlen(s), s); Ustrcpy(node->name, s); node->data.ptr = addr; if (!tree_insertnode(&tree_duplicates, node)) store_reset(rpoint); @@ -74,14 +76,14 @@ Returns: nothing */ void -tree_add_unusable(host_item *h) +tree_add_unusable(const host_item *h) { rmark rpoint = store_mark(); tree_node *node; uschar s[256]; sprintf(CS s, "T:%.200s:%s", h->name, h->address); node = store_get(sizeof(tree_node) + Ustrlen(s), - is_tainted(h->name) || is_tainted(h->address)); + is_tainted(h->name) || is_tainted(h->address) ? GET_TAINTED : GET_UNTAINTED); Ustrcpy(node->name, s); node->data.val = h->why; if (h->status == hstatus_unusable_expired) node->data.val += 256; @@ -373,7 +375,7 @@ static void tree_add_var(uschar * name, uschar * val, void * ctx) { tree_node ** root = ctx; -tree_node * node = store_get(sizeof(tree_node) + Ustrlen(name), is_tainted(name)); +tree_node * node = store_get(sizeof(tree_node) + Ustrlen(name), name); Ustrcpy(node->name, name); node->data.ptr = val; (void) tree_insertnode(root, node);