X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fauths%2Fpwcheck.c;h=7dd529fbcc1516293d7d8126c8506a507d7ec996;hb=6b331d5834d12bdda21857cd6fffac17038ce3c7;hp=645265daa0874fdd83706a2397ac36aa5f72b966;hpb=3634fc257bd0667daef14d72005cd87c735bbb24;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/auths/pwcheck.c b/src/src/auths/pwcheck.c index 645265daa..7dd529fbc 100644 --- a/src/src/auths/pwcheck.c +++ b/src/src/auths/pwcheck.c @@ -3,6 +3,7 @@ * Tim Martin * $Id: checkpw.c,v 1.49 2002/03/07 19:14:04 ken3 Exp $ */ +/* Copyright (c) The Exim Maintainers 2021 - 2022 */ /* * Copyright (c) 2001 Carnegie Mellon University. All rights reserved. * @@ -86,8 +87,6 @@ int pwcheck_verify_password(const char *userid, const char *passwd, const char **reply) { -userid = userid; /* Keep picky compilers happy */ -passwd = passwd; *reply = "pwcheck support is not included in this Exim binary"; return PWCHECK_FAIL; } @@ -113,7 +112,7 @@ return PWCHECK_FAIL; s = socket(AF_UNIX, SOCK_STREAM, 0); if (s == -1) { return PWCHECK_FAIL; } - memset((char *)&srvaddr, 0, sizeof(srvaddr)); + memset(CS &srvaddr, 0, sizeof(srvaddr)); srvaddr.sun_family = AF_UNIX; strncpy(srvaddr.sun_path, CYRUS_PWCHECK_SOCKET, sizeof(srvaddr.sun_path)); r = connect(s, (struct sockaddr *)&srvaddr, sizeof(srvaddr)); @@ -124,9 +123,9 @@ return PWCHECK_FAIL; return PWCHECK_FAIL; } - iov[0].iov_base = (char *)userid; + iov[0].iov_base = CS userid; iov[0].iov_len = strlen(userid)+1; - iov[1].iov_base = (char *)passwd; + iov[1].iov_base = CS passwd; iov[1].iov_len = strlen(passwd)+1; retry_writev(s, iov, 2); @@ -163,10 +162,6 @@ int saslauthd_verify_password(const uschar *userid, const uschar *realm, const uschar **reply) { -userid = userid; /* Keep picky compilers happy */ -passwd = passwd; -service = service; -realm = realm; *reply = US"saslauthd support is not included in this Exim binary"; return PWCHECK_FAIL; } @@ -200,7 +195,7 @@ int saslauthd_verify_password(const uschar *userid, return PWCHECK_FAIL; } - memset((char *)&srvaddr, 0, sizeof(srvaddr)); + memset(CS &srvaddr, 0, sizeof(srvaddr)); srvaddr.sun_family = AF_UNIX; strncpy(srvaddr.sun_path, CYRUS_SASLAUTHD_SOCKET, sizeof(srvaddr.sun_path)); @@ -296,7 +291,8 @@ static int read_string(int fd, uschar **retval) { if (count > MAX_REQ_LEN) { return -1; } else { - *retval = store_get(count + 1); + /* Assume the file is trusted, so no tainting */ + *retval = store_get(count + 1, GET_UNTAINTED); rc = (retry_read(fd, *retval, count) < (int) count); (*retval)[count] = '\0'; return count; @@ -343,7 +339,7 @@ static int retry_read(int fd, void *inbuf, unsigned nbyte) { int n; int nread = 0; - char *buf = (char *)inbuf; + char *buf = CS inbuf; if (nbyte == 0) return 0; @@ -432,7 +428,7 @@ retry_writev ( for (i = 0; i < iovcnt; i++) { if (iov[i].iov_len > (unsigned) n) { - iov[i].iov_base = (char *)iov[i].iov_base + n; + iov[i].iov_base = CS iov[i].iov_base + n; iov[i].iov_len -= n; break; }