From nobody  Wed Sep  2 23:14:50 1998
Received: (from nobody@localhost)
          by hub.freebsd.org (8.8.8/8.8.8) id XAA24165;
          Wed, 2 Sep 1998 23:14:50 -0700 (PDT)
          (envelope-from nobody)
Message-Id: <199809030614.XAA24165@hub.freebsd.org>
Date: Wed, 2 Sep 1998 23:14:50 -0700 (PDT)
From: nis@pluto.dti.ne.jp
To: freebsd-gnats-submit@freebsd.org
Subject: pw(8) doesn't work correctly with random passwd generation option
X-Send-Pr-Version: www-1.0

>Number:         7817
>Category:       bin
>Synopsis:       pw(8) doesn't work correctly with random passwd generation option
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Sep  2 23:20:02 PDT 1998
>Closed-Date:    Fri Jan 1 20:43:52 PST 1999
>Last-Modified:  Fri Jan  1 20:45:04 PST 1999
>Originator:     Hiroshi Nishikawa
>Release:        2.2.1-RELEASE
>Organization:
Nishikawa System
>Environment:
FreeBSD goose.localhost 2.2.1-RELEASE FreeBSD 2.2.1-RELEASE #0: Sun Apr 12 09:09
:14 JST 1998     root@pc01.lan:/usr/src/sys/compile/NIS  i386
>Description:
pw(8) often generates an shorter password than eight letters when I try 
random password generation option.
>How-To-Repeat:
Place 'defaultpasswd = "random"' in /etc/pw.conf and execute 'pw useradd
-n name'.
>Fix:
The functiton 'pw_password' in /usr/src/usr.sbin/pw/pw_user.c should be fixed.

*** /usr/src/usr.sbin/pw/pw_user.c      Tue Sep  1 20:02:14 1998
--- /usr/src/usr.sbin/pw/pw_user.c      Thu Sep  3 13:25:02 1998
***************
*** 903,909 ****
                l = (random() % 8 + 8); /* 8 - 16 chars */
                pw_getrand(rndbuf, l);
                for (i = 0; i < l; i++)
!                       pwbuf[i] = chars[rndbuf[i] % sizeof(chars)];
                pwbuf[i] = '\0';

                /*
--- 903,909 ----
                l = (random() % 8 + 8); /* 8 - 16 chars */
                pw_getrand(rndbuf, l);
                for (i = 0; i < l; i++)
!                       pwbuf[i] = chars[rndbuf[i] % (sizeof(chars)-1)];
                pwbuf[i] = '\0';

                /*

>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: billf 
State-Changed-When: Fri Jan 1 20:43:52 PST 1999 
State-Changed-Why:  
updated in HEAD(1.24) and RELENG_2_2(1.1.1.1.2.11) src/usr.sbin/pw/pw_user.c 
Sat Jan 2 4:37:46 1999 UTC by billf 
>Unformatted:
