X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fauths%2Fxtextencode.c;h=30ff8f11ddb039401f34d74c1e2ccfea0e1210ff;hb=730acb14092de4443ba3c5c38532f3ca9b3e75d3;hp=424453dc09347d91a26aa69964ebb6c57a480dec;hpb=0756eb3cb50d73a77b486e47528f7cb1bffdb299;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/auths/xtextencode.c b/src/src/auths/xtextencode.c index 424453dc0..30ff8f11d 100644 --- a/src/src/auths/xtextencode.c +++ b/src/src/auths/xtextencode.c @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/auths/xtextencode.c,v 1.1 2004/10/07 13:10:01 ph10 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2004 */ +/* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ #include "../exim.h" @@ -30,7 +28,7 @@ uschar * auth_xtextencode(uschar *clear, int len) { uschar *code; -uschar *p = (uschar *)clear; +uschar *p = US clear; uschar *pp; int c = len; int count = 1; @@ -42,19 +40,15 @@ in order to get the right amount of store. */ while (c -- > 0) count += ((x = *p++) < 33 || x > 127 || x == '+' || x == '=')? 3 : 1; -pp = code = store_get(count); +pp = code = store_get(count, is_tainted(clear)); -p = (uschar *)clear; +p = US clear; c = len; while (c-- > 0) - { if ((x = *p++) < 33 || x > 127 || x == '+' || x == '=') - { - sprintf(CS pp, "+%.02x", x); /* There's always room */ - pp += 3; - } - else *pp++ = x; - } + pp += sprintf(CS pp, "+%.02x", x); /* There's always room */ + else + *pp++ = x; *pp = 0; return code;