X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Futils%2Fchkpw.c;h=9691b734336376dd11a7eacf92422d371d70055a;hb=b9a2089d59579d13694e08b299c2aaf44ef9df6c;hp=ce5faaff81d4db537a3141d66744564c5a5a3180;hpb=a217e08a2d59d90bac3bf83d39de33d5221ef107;p=citadel.git diff --git a/citadel/utils/chkpw.c b/citadel/utils/chkpw.c index ce5faaff8..9691b7343 100644 --- a/citadel/utils/chkpw.c +++ b/citadel/utils/chkpw.c @@ -1,21 +1,13 @@ /* + * Copyright (c) 1987-2021 by the citadel.org team * - * - * Copyright (c) 1987-2009 by the citadel.org team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. + * This program is open source software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include @@ -48,11 +40,24 @@ int chkpwd_read_pipe[2]; static int validpw(uid_t uid, const char *pass) { char buf[256]; + int rv; - write(chkpwd_write_pipe[1], &uid, sizeof(uid_t)); - write(chkpwd_write_pipe[1], pass, 256); - read(chkpwd_read_pipe[0], buf, 4); + rv = write(chkpwd_write_pipe[1], &uid, sizeof(uid_t)); + if (rv == -1) { + printf( "Communicatino with chkpwd broken: %s\n", strerror(errno)); + return 0; + } + rv = write(chkpwd_write_pipe[1], pass, 256); + if (rv == -1) { + printf( "Communicatino with chkpwd broken: %s\n", strerror(errno)); + return 0; + } + rv = read(chkpwd_read_pipe[0], buf, 4); + if (rv == -1) { + printf( "Communicatino with chkpwd broken: %s\n", strerror(errno)); + return 0; + } if (!strncmp(buf, "PASS", 4)) { printf("pass\n"); return(1); @@ -110,8 +115,6 @@ int main(int argc, char **argv) { int uid; char ctdldir[PATH_MAX]=CTDLDIR; - calc_dirs_n_files(0,0,"", ctdldir, 0); - printf("\n\n ** host auth mode test utility **\n\n"); start_chkpwd_daemon();