Removed test_binary_compatibility() from ctdlvisor.c because we don't do it that...
[citadel.git] / citadel / chkpwd.c
index a07ad18ac74d857eead2d50ed75393ce3db05f95..4dfc594e29ef8c22c4f9b080739d48190ee48984 100644 (file)
@@ -1,9 +1,16 @@
 /*
- * $Id$
- *
  * a setuid helper program for machines which use shadow passwords
  * by Nathan Bryant, March 1999
  *
+ * Copyright (c) 1987-2012 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 <pwd.h>
@@ -15,6 +22,8 @@
 #include <unistd.h>
 #include <sys/types.h>
 
+#include <libcitadel.h>
+
 #include "auth.h"
 #include "config.h"
 #include "citadel_dirs.h"
@@ -26,10 +35,12 @@ int main(void)
        char buf[SIZ];
 
        while (1) {
-               read(0, buf, 16);       /* uid */
-               uid = atoi(buf);
+               buf[0] = '\0';
+               read(0, &uid, sizeof(uid_t));   /* uid */
                read(0, buf, 256);      /* password */
 
+               if (buf[0] == '\0') 
+                       return (0);
                if (validate_password(uid, buf)) {
                        write(1, "PASS", 4);
                }