]> git.cameronkatri.com Git - pw-darwin.git/blobdiff - pw/pwupd.c
Initialize RNG only once
[pw-darwin.git] / pw / pwupd.c
index e13ce5f74cc2cad552331e19709d564d9e7eaeef..1162d0ce9a1c60cf97ea7939b3ed3f63826912cc 100644 (file)
@@ -1,26 +1,20 @@
 /*-
- * Copyright (c) 1996 by David L. Nugent <davidn@blaze.net.au>.
- * All rights reserved.
+ * Copyright (C) 1996
+ *     David L. Nugent.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer as
- *    the first lines of this file unmodified.
+ *    notice, this list of conditions and the following disclaimer.
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by David L. Nugent.
- * 4. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
  *
- * THIS SOFTWARE IS PROVIDED BY THE DAVID L. NUGENT ``AS IS'' AND
+ * THIS SOFTWARE IS PROVIDED BY DAVID L. NUGENT AND CONTRIBUTORS ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL DAVID L. NUGENT BE LIABLE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL DAVID L. NUGENT OR CONTRIBUTORS BE LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/wait.h>
-#include <stdarg.h>
 
 #include "pwupd.h"
 
+#define HAVE_PWDB_C    1
+
 static int
 pwdb(char *arg,...)
 {
@@ -114,10 +109,15 @@ pw_update(struct passwd * pwd, char const * user, int mode)
 
        /*
         * First, let's check the see if the database is alright
+        * Note: -c is only available in FreeBSD 2.2 and above
         */
+#ifdef HAVE_PWDB_C
        if (pwdb("-c", NULL) == 0) {    /* Check only */
+#else
+       {                               /* No -c */
+#endif
                char            pfx[32];
-               char            pwbuf[MAXPWLINE];
+               char            pwbuf[PWBUFSZ];
                int             l = sprintf(pfx, "%s:", user);
 
                /*