for (;;) {
+ char *pw_class = class;
+
/* get target user, default to root unless in -L mode */
if (*argv) {
user = *argv;
@@ -205,11 +207,11 @@ main(int argc, char **argv)
}
/* If the user specified a login class, use it */
- if (!class && pwd && pwd->pw_class && pwd->pw_class[0] != '\0')
- class = strdup(pwd->pw_class);
- if ((lc = login_getclass(class)) == NULL)
+ if (pw_class == NULL && pwd != NULL)
+ pw_class = pwd->pw_class;
+ if ((lc = login_getclass(pw_class)) == NULL)
auth_errx(as, 1, "no such login class: %s",
- class ? class : LOGIN_DEFCLASS);
+ pw_class ? pw_class : LOGIN_DEFCLASS);