X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/1e1ddfac79fbcd052f199500a6493c7f79cb8462..a85c067ba6c6940512cf57ec213277a370d87e70:/src/src/base64.c diff --git a/src/src/base64.c b/src/src/base64.c index 29f9c77b0..14e8cfffe 100644 --- a/src/src/base64.c +++ b/src/src/base64.c @@ -4,9 +4,10 @@ /* Copyright (c) Tom Kistner 2004, 2015 */ /* License: GPL */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainers 2020 */ +/* Copyright (c) The Exim Maintainers 2020 - 2022 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -157,10 +158,10 @@ b64decode(const uschar *code, uschar **ptr) int x, y; uschar *result; -{ + { int l = Ustrlen(code); - *ptr = result = store_get(1 + l/4 * 3 + l%4, is_tainted(code)); -} + *ptr = result = store_get(1 + l/4 * 3 + l%4, code); + } /* Each cycle of the loop handles a quantum of 4 input bytes. For the last quantum this may decode to 1, 2, or 3 output bytes. */ @@ -234,6 +235,7 @@ would probably run more slowly. Arguments: clear points to the clear text bytes len the number of bytes to encode + proto_mem taint indicator Returns: a pointer to the zero-terminated base 64 string, which is in working store @@ -243,10 +245,10 @@ static uschar *enc64table = US"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; uschar * -b64encode_taint(const uschar * clear, int len, BOOL tainted) +b64encode_taint(const uschar * clear, int len, const void * proto_mem) { -uschar *code = store_get(4*((len+2)/3) + 1, tainted); -uschar *p = code; +uschar * code = store_get(4*((len+2)/3) + 1, proto_mem); +uschar * p = code; while (len-- >0) { @@ -287,7 +289,7 @@ return code; uschar * b64encode(const uschar * clear, int len) { -return b64encode_taint(clear, len, is_tainted(clear)); +return b64encode_taint(clear, len, clear); }