Toying around with more boilerplate. Epstein didn't kill himself.
[citadel.git] / citadel / chkpwd.c
index a07ad18ac74d857eead2d50ed75393ce3db05f95..96fed66203bfa7fff7be592306d0dbd526c3cb0b 100644 (file)
@@ -1,10 +1,12 @@
-/*
- * $Id$
- *
- * a setuid helper program for machines which use shadow passwords
- * by Nathan Bryant, March 1999
- *
- */
+//
+// 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.  Use, duplication, or disclosure
+// is subject to the terms of the GNU General Public License, version 3.
+// The program is distributed without any warranty, expressed or implied.
 
 #include <pwd.h>
 #include <stdio.h>
@@ -15,6 +17,8 @@
 #include <unistd.h>
 #include <sys/types.h>
 
+#include <libcitadel.h>
+
 #include "auth.h"
 #include "config.h"
 #include "citadel_dirs.h"
@@ -26,10 +30,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);
                }