X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fsrc%2Fauths%2Fxtextencode.c;h=30ff8f11ddb039401f34d74c1e2ccfea0e1210ff;hb=a57492a480bce6d41dec5255d4a55550aa9d4f87;hp=5a8b8cb343a34f388117074a696f59a54247e1cd;hpb=184e88237dea64ce48076cdd0184612d057cbafd;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/auths/xtextencode.c b/src/src/auths/xtextencode.c index 5a8b8cb34..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.4 2007/01/08 10:50:19 ph10 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2007 */ +/* 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;