logindefs: change getlogindefs_num() to return unsigned long
Where ever getlogindefs_num() is called return value is always expected to be unsigned, such as sleep() input, gid_t or mode_t. Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
parent
71681ee5ec
commit
c9baf5da86
|
@ -127,7 +127,7 @@ struct login_context {
|
|||
* This bounds the time given to login. Not a define so it can
|
||||
* be patched on machines where it's too small.
|
||||
*/
|
||||
static int timeout = LOGIN_TIMEOUT;
|
||||
static unsigned int timeout = LOGIN_TIMEOUT;
|
||||
static int child_pid = 0;
|
||||
static volatile int got_sig = 0;
|
||||
|
||||
|
@ -172,8 +172,8 @@ static void timedout(int sig __attribute__ ((__unused__)))
|
|||
{
|
||||
signal(SIGALRM, timedout2);
|
||||
alarm(10);
|
||||
/* TRANSLATORS: The standard value for %d is 60. */
|
||||
warnx(_("timed out after %d seconds"), timeout);
|
||||
/* TRANSLATORS: The standard value for %u is 60. */
|
||||
warnx(_("timed out after %u seconds"), timeout);
|
||||
signal(SIGALRM, SIG_IGN);
|
||||
alarm(0);
|
||||
timedout2(0);
|
||||
|
@ -203,7 +203,7 @@ static void sig_handler(int signal)
|
|||
*/
|
||||
static void __attribute__ ((__noreturn__)) sleepexit(int eval)
|
||||
{
|
||||
sleep(getlogindefs_num("FAIL_DELAY", LOGIN_EXIT_TIMEOUT));
|
||||
sleep((unsigned int)getlogindefs_num("FAIL_DELAY", LOGIN_EXIT_TIMEOUT));
|
||||
exit(eval);
|
||||
}
|
||||
|
||||
|
@ -320,7 +320,7 @@ static void chown_tty(struct login_context *cxt)
|
|||
grname = getlogindefs_str("TTYGROUP", TTYGRPNAME);
|
||||
if (grname && *grname) {
|
||||
if (*grname >= 0 && *grname <= 9) /* group by ID */
|
||||
gid = getlogindefs_num("TTYGROUP", gid);
|
||||
gid = (gid_t)getlogindefs_num("TTYGROUP", gid);
|
||||
else { /* group by name */
|
||||
struct group *gr = getgrnam(grname);
|
||||
if (gr)
|
||||
|
@ -772,7 +772,8 @@ static pam_handle_t *init_loginpam(struct login_context *cxt)
|
|||
|
||||
static void loginpam_auth(struct login_context *cxt)
|
||||
{
|
||||
int rc, failcount = 0, show_unknown, retries;
|
||||
int rc, failcount = 0, show_unknown;
|
||||
unsigned long retries;
|
||||
const char *hostname = cxt->hostname ? cxt->hostname :
|
||||
cxt->tty_name ? cxt->tty_name : "<unknown>";
|
||||
pam_handle_t *pamh = cxt->pamh;
|
||||
|
@ -1235,11 +1236,11 @@ int main(int argc, char **argv)
|
|||
.conv = { misc_conv, NULL } /* PAM conversation function */
|
||||
};
|
||||
|
||||
timeout = getlogindefs_num("LOGIN_TIMEOUT", LOGIN_TIMEOUT);
|
||||
timeout = (unsigned int)getlogindefs_num("LOGIN_TIMEOUT", LOGIN_TIMEOUT);
|
||||
|
||||
signal(SIGALRM, timedout);
|
||||
siginterrupt(SIGALRM, 1); /* we have to interrupt syscalls like ioclt() */
|
||||
alarm((unsigned int)timeout);
|
||||
alarm(timeout);
|
||||
signal(SIGQUIT, SIG_IGN);
|
||||
signal(SIGINT, SIG_IGN);
|
||||
|
||||
|
|
|
@ -186,17 +186,17 @@ int getlogindefs_bool(const char *name, int dflt)
|
|||
return ptr && ptr->value ? (strcasecmp(ptr->value, "yes") == 0) : dflt;
|
||||
}
|
||||
|
||||
long getlogindefs_num(const char *name, long dflt)
|
||||
unsigned long getlogindefs_num(const char *name, long dflt)
|
||||
{
|
||||
struct item *ptr = search(name);
|
||||
char *end = NULL;
|
||||
long retval;
|
||||
unsigned long retval;
|
||||
|
||||
if (!ptr || !ptr->value)
|
||||
return dflt;
|
||||
|
||||
errno = 0;
|
||||
retval = strtol(ptr->value, &end, 0);
|
||||
retval = strtoul(ptr->value, &end, 0);
|
||||
if (end && *end == '\0' && !errno)
|
||||
return retval;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
extern void logindefs_load_file(const char *filename);
|
||||
extern void (*logindefs_load_defaults)(void);
|
||||
extern int getlogindefs_bool(const char *name, int dflt);
|
||||
extern long getlogindefs_num(const char *name, long dflt);
|
||||
extern unsigned long getlogindefs_num(const char *name, long dflt);
|
||||
extern const char *getlogindefs_str(const char *name, const char *dflt);
|
||||
extern void free_getlogindefs_data(void);
|
||||
extern int logindefs_setenv(const char *name, const char *conf, const char *dflt);
|
||||
|
|
|
@ -776,7 +776,7 @@ main (int argc, char **argv)
|
|||
if (!correct_password (pw))
|
||||
{
|
||||
log_su (pw, false);
|
||||
sleep (getlogindefs_num ("FAIL_DELAY", 1));
|
||||
sleep ((unsigned int)getlogindefs_num ("FAIL_DELAY", 1));
|
||||
error (EXIT_FAIL, 0, _("incorrect password"));
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue