On Sat, Aug 31, 2013 at 06:23:25AM -0600, Todd C. Miller wrote:
> Assuming we want to make this a non-fatal error the following should
> do.
> 
>  - todd
> 
> Index: usr.sbin/user/user.c
> ===================================================================
> RCS file: /home/cvs/openbsd/src/usr.sbin/user/user.c,v
> retrieving revision 1.95
> diff -u -r1.95 user.c
> --- usr.sbin/user/user.c      2 Apr 2013 05:04:47 -0000       1.95
> +++ usr.sbin/user/user.c      31 Aug 2013 12:20:40 -0000
> @@ -288,20 +288,20 @@
>  {
>       struct dirent   *dp;
>       DIR             *dirp;
> -     int             n;
> +     int             n = 0;
>  
>       if ((dirp = opendir(skeldir)) == NULL) {
>               warn("can't open source . files dir `%s'", skeldir);
> -             return 0;
> -     }
> -     for (n = 0; (dp = readdir(dirp)) != NULL && n == 0 ; ) {
> -             if (strcmp(dp->d_name, ".") == 0 ||
> -                 strcmp(dp->d_name, "..") == 0) {
> -                     continue;
> +     } else {
> +             while ((dp = readdir(dirp)) != NULL) {
> +                     if (strcmp(dp->d_name, ".") != 0 &&
> +                         strcmp(dp->d_name, "..") != 0) {
> +                             n = 1;
> +                             break;
> +                     }
>               }
> -             n = 1;
> +             (void) closedir(dirp);
>       }
> -     (void) closedir(dirp);
>       if (n == 0) {
>               warnx("No \"dot\" initialisation files found");
>       } else {
> 

This makes sense to me. ok krw@

.... Ken

Reply via email to