X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fauths%2Fcram_md5.c;h=2d5c0d1e2b0c1ce639f029ce7531a6fdc8265ba3;hb=96f5fe4ce29825208eafffcb3579d789dc5b45d1;hp=8b54b955c46b603ef80bfd7b8c9ce2ce5a0f49ec;hpb=184e88237dea64ce48076cdd0184612d057cbafd;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/auths/cram_md5.c b/src/src/auths/cram_md5.c index 8b54b955c..2d5c0d1e2 100644 --- a/src/src/auths/cram_md5.c +++ b/src/src/auths/cram_md5.c @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/auths/cram_md5.c,v 1.7 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 - 2015 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -155,8 +153,8 @@ auth_cram_md5_server(auth_instance *ablock, uschar *data) { auth_cram_md5_options_block *ob = (auth_cram_md5_options_block *)(ablock->options_block); -uschar *challenge = string_sprintf("<%d.%d@%s>", getpid(), time(NULL), - primary_hostname); +uschar *challenge = string_sprintf("<%d.%ld@%s>", getpid(), + (long int) time(NULL), primary_hostname); uschar *clear, *secret; uschar digest[16]; int i, rc, len; @@ -174,7 +172,7 @@ if (*data != 0) return UNEXPECTED; /* Send the challenge, read the return */ if ((rc = auth_get_data(&data, challenge, Ustrlen(challenge))) != OK) return rc; -if ((len = auth_b64decode(data, &clear)) < 0) return BAD64; +if ((len = b64decode(data, &clear)) < 0) return BAD64; /* The return consists of a user name, space-separated from the CRAM-MD5 digest, expressed in hex. Extract the user name and put it in $auth1 and $1. @@ -287,7 +285,7 @@ if (smtp_write_command(outblock, FALSE, "AUTH %s\r\n", ablock->public_name) < 0) if (smtp_read_response(inblock, (uschar *)buffer, buffsize, '3', timeout) < 0) return FAIL; -if (auth_b64decode(buffer + 4, &challenge) < 0) +if (b64decode(buffer + 4, &challenge) < 0) { string_format(buffer, buffsize, "bad base 64 string in challenge: %s", big_buffer + 4); @@ -312,11 +310,11 @@ for (i = 0; i < 16; i++) } /* Send the response, in base 64, and check the result. The response is -in big_buffer, but auth_b64encode() returns its result in working store, +in big_buffer, but b64encode() returns its result in working store, so calling smtp_write_command(), which uses big_buffer, is OK. */ buffer[0] = 0; -if (smtp_write_command(outblock, FALSE, "%s\r\n", auth_b64encode(big_buffer, +if (smtp_write_command(outblock, FALSE, "%s\r\n", b64encode(big_buffer, p - big_buffer)) < 0) return FAIL_SEND; return smtp_read_response(inblock, (uschar *)buffer, buffsize, '2', timeout)?