]> code.citadel.org Git - citadel.git/blobdiff - citadel/chkpw.c
arrgh
[citadel.git] / citadel / chkpw.c
index ff856cddc6bd86d655d7b63930d2145752488f66..9691b734336376dd11a7eacf92422d371d70055a 100644 (file)
@@ -1,5 +1,13 @@
 /* 
+ * Copyright (c) 1987-2021 by the citadel.org team
  *
+ *  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.
  */
 
 #include <errno.h>
@@ -32,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);
@@ -94,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();