]> Zhao Yanbai Git Server - minix.git/commitdiff
Updating usr.bin/passwd 77/177/2
authorLionel Sambuc <lionel@minix3.org>
Wed, 12 Dec 2012 10:53:34 +0000 (11:53 +0100)
committerLionel Sambuc <lionel@minix3.org>
Mon, 14 Jan 2013 10:36:27 +0000 (11:36 +0100)
Change-Id: I5512cd44cb9f1684350050d4e3fb5bb4d1c9b6b1

releasetools/nbsd_ports
usr.bin/passwd/Makefile
usr.bin/passwd/extern.h
usr.bin/passwd/krb5_passwd.c
usr.bin/passwd/local_passwd.c
usr.bin/passwd/yp_passwd.c

index 4de8287bb15860e4a62b3c9ac26a6774822ac040..672673d447d5b4757937e979974d17f5231e599c 100644 (file)
 2009/08/15 20:44:56,usr.bin/mktemp
 2012/10/17 12:00:00,usr.bin/nbperf
 2010/05/14 17:28:23,usr.bin/newgrp
-2012/10/17 12:00:00,usr.bin/passwd/Makefile
+2012/10/17 12:00:00,usr.bin/passwd
 2010/02/19 16:35:27,usr.bin/sed
 2010/05/27 08:40:19,usr.bin/seq
 2012/10/17 12:00:00,usr.bin/sort
index 34ee09fbccfb19b88da956d4922c2aa5b1e567dc..cffd0975e58286867064f24f89b295825e461e3a 100644 (file)
@@ -3,11 +3,6 @@
 
 .include <bsd.own.mk>
 
-.if defined(__MINIX)
-# LSC Until it compiles cleanly...
-NOGCCERROR:=yes
-.endif
-
 USE_FORT?= yes # setuid
 PROG=  passwd
 SRCS=  local_passwd.c passwd.c
index 11a4d746d5d3939f54f8ba85fcf3b26fe1751ad2..ffd0eaff7a90dee5c30a135e2e858b7ac006c8c2 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: extern.h,v 1.13 2006/03/23 23:37:07 wiz Exp $  */
+/*     $NetBSD: extern.h,v 1.14 2011/09/16 15:39:27 joerg Exp $        */
 
 /*
  * Copyright (c) 1994
@@ -33,7 +33,7 @@
 
 #ifdef USE_PAM
 
-void   usage(void);
+__dead void    usage(void);
 
 #ifdef KERBEROS5
 void   pwkrb5_usage(const char *);
index eefdbe458bbdaa24fc4f40dbf4f08a7f02a0f4ae..731319d62132103516f4e5a7e06eecfe88c5b572 100644 (file)
@@ -1,4 +1,4 @@
-/* $NetBSD: krb5_passwd.c,v 1.18 2009/04/18 09:04:34 mlelstv Exp $ */
+/* $NetBSD: krb5_passwd.c,v 1.20 2012/04/22 23:43:51 christos Exp $ */
 
 /*
  * Copyright (c) 2000, 2005 The NetBSD Foundation, Inc.
 
 #include "extern.h"
 
+static void
+pwkrb5_warn(const char *msg, krb5_context context, krb5_error_code ret)
+{
+    const char *errtxt = krb5_get_error_message(context, ret);
+    if (errtxt != NULL) {
+           warnx("%s: %s", msg, errtxt);
+           krb5_free_error_message(context, errtxt);
+    } else
+           warnx("%s: %d", msg, ret);
+}
+
 #ifdef USE_PAM
 
 void
@@ -68,7 +79,7 @@ pwkrb5_process(const char *username, int argc, char **argv)
 {
        krb5_context context;
        krb5_error_code ret;
-       krb5_get_init_creds_opt opt;
+       krb5_get_init_creds_opt *opt;
        krb5_principal principal;
        krb5_creds cred;
        int result_code;
@@ -125,21 +136,23 @@ pwkrb5_process(const char *username, int argc, char **argv)
        if (ret != 0) {
                if (ret == ENXIO)
                        errx(1, "Kerberos 5 not in use.");
-               warnx("Unable to initialize Kerberos 5: %s",
-                   krb5_get_err_text(context, ret));
-               goto bad;
+               errx(1, "Unable to initialize Kerberos 5: %s", strerror(ret));
        }
 
-       krb5_get_init_creds_opt_init(&opt);
+       ret = krb5_get_init_creds_opt_alloc(context, &opt);
+       if (ret) {
+               pwkrb5_warn("failed to allocate opts", context, ret);
+               goto bad;
+       }
     
-       krb5_get_init_creds_opt_set_tkt_life(&opt, 300L);
-       krb5_get_init_creds_opt_set_forwardable(&opt, FALSE);
-       krb5_get_init_creds_opt_set_proxiable(&opt, FALSE);
+       krb5_get_init_creds_opt_set_tkt_life(opt, 300L);
+       krb5_get_init_creds_opt_set_forwardable(opt, FALSE);
+       krb5_get_init_creds_opt_set_proxiable(opt, FALSE);
 
        ret = krb5_parse_name(context, username, &principal);
        if (ret) {
-               warnx("failed to parse principal: %s", 
-                   krb5_get_err_text(context, ret));
+               krb5_get_init_creds_opt_free(context, opt);
+               pwkrb5_warn("failed to parse principal", context, ret);
                goto bad;
        }
 
@@ -151,9 +164,9 @@ pwkrb5_process(const char *username, int argc, char **argv)
                                           NULL,
                                           0L,
                                           "kadmin/changepw",
-                                          &opt);
-
+                                          opt);
 
+       krb5_get_init_creds_opt_free(context, opt);
        switch (ret) {
        case 0:
                break;
@@ -168,8 +181,7 @@ pwkrb5_process(const char *username, int argc, char **argv)
                goto bad;
 
        default:
-               warnx("failed to get credentials: %s", 
-                   krb5_get_err_text(context, ret));
+               pwkrb5_warn("failed to get credentials", context, ret);
                goto bad;
        }
 
@@ -186,8 +198,7 @@ pwkrb5_process(const char *username, int argc, char **argv)
                                &result_code_string,
                                &result_string);
        if (ret) {
-               warnx("unable to set password: %s",
-                   krb5_get_err_text(context, ret));
+               pwkrb5_warn("unable to set password", context, ret);
                goto bad;
        }
 
@@ -259,14 +270,13 @@ krb5_end(void)
     krb5_free_context(defcontext);
 }
 
-
 int
 krb5_chpw(const char *username)
 {
     krb5_error_code ret;
     krb5_context context;
     krb5_principal principal;
-    krb5_get_init_creds_opt opt;
+    krb5_get_init_creds_opt *opt;
     krb5_creds cred;
     int result_code;
     krb5_data result_code_string, result_string;
@@ -274,22 +284,25 @@ krb5_chpw(const char *username)
 
     ret = krb5_init_context (&context);
     if (ret) {
-       warnx("failed kerberos initialisation: %s", 
-             krb5_get_err_text(context, ret));
+       pwkrb5_warn("failed kerberos initialisation", context, ret);
        return 1;
     }
 
-    krb5_get_init_creds_opt_init (&opt);
+    ret = krb5_get_init_creds_opt_alloc (context, &opt);
+    if (ret) {
+       pwkrb5_warn("failed to allocate credential opt", context, ret);
+       return 1;
+    }
     
-    krb5_get_init_creds_opt_set_tkt_life (&opt, 300);
-    krb5_get_init_creds_opt_set_forwardable (&opt, FALSE);
-    krb5_get_init_creds_opt_set_proxiable (&opt, FALSE);
+    krb5_get_init_creds_opt_set_tkt_life (opt, 300);
+    krb5_get_init_creds_opt_set_forwardable (opt, FALSE);
+    krb5_get_init_creds_opt_set_proxiable (opt, FALSE);
 
     if(username != NULL) {
         ret = krb5_parse_name (context, username, &principal);
         if (ret) {
-           warnx("failed to parse principal: %s", 
-                 krb5_get_err_text(context, ret));
+           krb5_get_init_creds_opt_free (context, opt);
+           pwkrb5_warn("failed to parse principal", context, ret);
            return 1;
        }
     } else
@@ -303,8 +316,9 @@ krb5_chpw(const char *username)
                                         NULL,
                                         0,
                                         "kadmin/changepw",
-                                        &opt);
+                                        opt);
 
+    krb5_get_init_creds_opt_free (context, opt);
     switch (ret) {
     case 0:
         break;
@@ -317,8 +331,7 @@ krb5_chpw(const char *username)
        return 1;
         break;
     default:
-       warnx("failed to get credentials: %s", 
-             krb5_get_err_text(context, ret));
+       pwkrb5_warn("failed to get credentials", context, ret);
        return 1;
     }
     krb5_data_zero (&result_code_string);
index 5f161be887b2240aed91cbab901cad90bb7a0dbc..10b56645ea2fb28e39691e93b7b6f10e92374648 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: local_passwd.c,v 1.34 2010/03/02 16:19:13 gdt Exp $    */
+/*     $NetBSD: local_passwd.c,v 1.36 2012/03/25 05:55:07 dholland Exp $       */
 
 /*-
  * Copyright (c) 1990, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "from: @(#)local_passwd.c    8.3 (Berkeley) 4/2/94";
 #else
-__RCSID("$NetBSD: local_passwd.c,v 1.34 2010/03/02 16:19:13 gdt Exp $");
+__RCSID("$NetBSD: local_passwd.c,v 1.36 2012/03/25 05:55:07 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -191,9 +191,7 @@ pwlocal_process(const char *username, int argc, char **argv)
                login_close(lc);
        }
 #endif
-#if 0
-       printf("AAA: pw_expiry = %x\n", pw_expiry);
-#endif
+
        pw->pw_passwd = getnewpasswd(pw, min_pw_len);
        old_change = pw->pw_change;
        pw->pw_change = pw_expiry ? pw_expiry + time(NULL) : 0;
@@ -219,7 +217,7 @@ pwlocal_process(const char *username, int argc, char **argv)
        pw_copy(pfd, tfd, pw, &old_pw);
 
        if (pw_mkdb(username, old_change == pw->pw_change) < 0)
-               pw_error((char *)NULL, 0, 1);
+               pw_error(NULL, 0, 1);
 
        syslog(LOG_AUTH | LOG_INFO,
               "user %s (UID %lu) successfully changed "
@@ -232,8 +230,7 @@ pwlocal_process(const char *username, int argc, char **argv)
 static int force_local;
 
 int
-local_init(progname)
-       const char *progname;
+local_init(const char *progname)
 {
        force_local = 0;
        return (0);
@@ -253,7 +250,7 @@ local_arg(char ch, const char *arg)
 }
 
 int
-local_arg_end()
+local_arg_end(void)
 {
        if (force_local)
                return(PW_USE_FORCE);
@@ -261,14 +258,13 @@ local_arg_end()
 }
 
 void
-local_end()
+local_end(void)
 {
        /* NOOP */
 }
 
 int
-local_chpw(uname)
-       const char *uname;
+local_chpw(const char *uname)
 {
        struct passwd *pw;
        struct passwd old_pw;
@@ -304,9 +300,7 @@ local_chpw(uname)
                login_close(lc);
        }
 #endif
-#if 0
-       printf("pw_expiry = %x, pw->pw_expire = %x\n", pw_expiry, pw->pw_expire);
-#endif
+
        pw->pw_passwd = getnewpasswd(pw, min_pw_len);
        old_change = pw->pw_change;
        pw->pw_change = pw_expiry ? pw_expiry + time(NULL) : 0;
@@ -332,7 +326,7 @@ local_chpw(uname)
        pw_copy(pfd, tfd, pw, &old_pw);
 
        if (pw_mkdb(uname, old_change == pw->pw_change) < 0)
-               pw_error((char *)NULL, 0, 1);
+               pw_error(NULL, 0, 1);
 
        syslog(LOG_AUTH | LOG_INFO,
               "user %s (UID %lu) successfully changed "
index 0d11ff1a308f0ff5d57fa32c2263cf7612bd9eac..71b7751173db17fea195ed5c5cc50938b53881f2 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: yp_passwd.c,v 1.35 2010/09/08 13:58:46 christos Exp $  */
+/*     $NetBSD: yp_passwd.c,v 1.37 2012/03/25 05:55:07 dholland Exp $  */
 
 /*
  * Copyright (c) 1988, 1990, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "from:  @(#)local_passwd.c    8.3 (Berkeley) 4/2/94";
 #else
-__RCSID("$NetBSD: yp_passwd.c,v 1.35 2010/09/08 13:58:46 christos Exp $");
+__RCSID("$NetBSD: yp_passwd.c,v 1.37 2012/03/25 05:55:07 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -70,7 +70,7 @@ __RCSID("$NetBSD: yp_passwd.c,v 1.35 2010/09/08 13:58:46 christos Exp $");
 static uid_t uid;
 static char *domain;
 
-static void
+__dead static void
 pwerror(const char *name, int show_err, int eval)
 {
 
@@ -329,8 +329,7 @@ pwyp_process(const char *username, int argc, char **argv)
 static int yflag;
 
 int
-yp_init(progname)
-       const char *progname;
+yp_init(const char *progname)
 {
        int yppwd;