diff --git a/plugins/sudoers/gram.c b/plugins/sudoers/gram.c index c11fababc..e403c223a 100644 --- a/plugins/sudoers/gram.c +++ b/plugins/sudoers/gram.c @@ -159,10 +159,10 @@ struct sudoers_parse_tree parsed_policy = { * Local prototypes */ static void init_options(struct command_options *opts); -static bool add_defaults(int, struct member *, struct defaults *); +static bool add_defaults(short, struct member *, struct defaults *); static bool add_userspec(struct member *, struct privilege *); static struct defaults *new_default(char *, char *, short); -static struct member *new_member(char *, int); +static struct member *new_member(char *, short); static struct sudo_command *new_command(char *, char *); static struct command_digest *new_digest(unsigned int, char *); static void alias_error(const char *name, int errnum); @@ -3406,7 +3406,7 @@ yyreturnlab: void sudoerserrorf(const char *fmt, ...) { - const int column = sudolinebuf.toke_start + 1; + const int column = (int)(sudolinebuf.toke_start + 1); va_list ap; debug_decl(sudoerserrorf, SUDOERS_DEBUG_PARSER); @@ -3438,8 +3438,8 @@ sudoerserrorf(const char *fmt, ...) tofree = NULL; } } - sudo_printf(SUDO_CONV_ERROR_MSG, _("%s:%d:%d: %s\n"), sudoers, - this_lineno, (int)sudolinebuf.toke_start + 1, s); + sudo_printf(SUDO_CONV_ERROR_MSG, _("%s:%d:%zu: %s\n"), sudoers, + this_lineno, sudolinebuf.toke_start + 1, s); free(tofree); va_end(ap); sudoers_setlocale(oldlocale, NULL); @@ -3515,7 +3515,7 @@ new_default(char *var, char *val, short op) d->op = op; /* d->binding = NULL; */ d->line = this_lineno; - d->column = sudolinebuf.toke_start + 1; + d->column = (int)(sudolinebuf.toke_start + 1); d->file = sudo_rcstr_addref(sudoers); HLTQ_INIT(d, entries); @@ -3523,7 +3523,7 @@ new_default(char *var, char *val, short op) } static struct member * -new_member(char *name, int type) +new_member(char *name, short type) { struct member *m; debug_decl(new_member, SUDOERS_DEBUG_PARSER); @@ -3608,7 +3608,7 @@ free_defaults_binding(struct defaults_binding *binding) * or runas users the entries apply to (determined by the type). */ static bool -add_defaults(int type, struct member *bmem, struct defaults *defs) +add_defaults(short type, struct member *bmem, struct defaults *defs) { struct defaults *d, *next; struct defaults_binding *binding; @@ -3667,7 +3667,7 @@ add_userspec(struct member *members, struct privilege *privs) } /* We already parsed the newline so sudolineno is off by one. */ u->line = sudolineno - 1; - u->column = sudolinebuf.toke_start + 1; + u->column = (int)(sudolinebuf.toke_start + 1); u->file = sudo_rcstr_addref(sudoers); parser_leak_remove(LEAK_MEMBER, members); HLTQ_TO_TAILQ(&u->users, members, entries); diff --git a/plugins/sudoers/gram.y b/plugins/sudoers/gram.y index 130ba2aa1..358dae275 100644 --- a/plugins/sudoers/gram.y +++ b/plugins/sudoers/gram.y @@ -76,10 +76,10 @@ struct sudoers_parse_tree parsed_policy = { * Local prototypes */ static void init_options(struct command_options *opts); -static bool add_defaults(int, struct member *, struct defaults *); +static bool add_defaults(short, struct member *, struct defaults *); static bool add_userspec(struct member *, struct privilege *); static struct defaults *new_default(char *, char *, short); -static struct member *new_member(char *, int); +static struct member *new_member(char *, short); static struct sudo_command *new_command(char *, char *); static struct command_digest *new_digest(unsigned int, char *); static void alias_error(const char *name, int errnum); @@ -1223,7 +1223,7 @@ group : ALIAS { void sudoerserrorf(const char *fmt, ...) { - const int column = sudolinebuf.toke_start + 1; + const int column = (int)(sudolinebuf.toke_start + 1); va_list ap; debug_decl(sudoerserrorf, SUDOERS_DEBUG_PARSER); @@ -1255,8 +1255,8 @@ sudoerserrorf(const char *fmt, ...) tofree = NULL; } } - sudo_printf(SUDO_CONV_ERROR_MSG, _("%s:%d:%d: %s\n"), sudoers, - this_lineno, (int)sudolinebuf.toke_start + 1, s); + sudo_printf(SUDO_CONV_ERROR_MSG, _("%s:%d:%zu: %s\n"), sudoers, + this_lineno, sudolinebuf.toke_start + 1, s); free(tofree); va_end(ap); sudoers_setlocale(oldlocale, NULL); @@ -1332,7 +1332,7 @@ new_default(char *var, char *val, short op) d->op = op; /* d->binding = NULL; */ d->line = this_lineno; - d->column = sudolinebuf.toke_start + 1; + d->column = (int)(sudolinebuf.toke_start + 1); d->file = sudo_rcstr_addref(sudoers); HLTQ_INIT(d, entries); @@ -1340,7 +1340,7 @@ new_default(char *var, char *val, short op) } static struct member * -new_member(char *name, int type) +new_member(char *name, short type) { struct member *m; debug_decl(new_member, SUDOERS_DEBUG_PARSER); @@ -1425,7 +1425,7 @@ free_defaults_binding(struct defaults_binding *binding) * or runas users the entries apply to (determined by the type). */ static bool -add_defaults(int type, struct member *bmem, struct defaults *defs) +add_defaults(short type, struct member *bmem, struct defaults *defs) { struct defaults *d, *next; struct defaults_binding *binding; @@ -1484,7 +1484,7 @@ add_userspec(struct member *members, struct privilege *privs) } /* We already parsed the newline so sudolineno is off by one. */ u->line = sudolineno - 1; - u->column = sudolinebuf.toke_start + 1; + u->column = (int)(sudolinebuf.toke_start + 1); u->file = sudo_rcstr_addref(sudoers); parser_leak_remove(LEAK_MEMBER, members); HLTQ_TO_TAILQ(&u->users, members, entries); diff --git a/plugins/sudoers/timestamp.c b/plugins/sudoers/timestamp.c index fa956c6dc..d48342dd6 100644 --- a/plugins/sudoers/timestamp.c +++ b/plugins/sudoers/timestamp.c @@ -187,8 +187,8 @@ ts_find_record(int fd, struct timestamp_entry *key, struct timestamp_entry *entr cur.size, sizeof(cur)); if (lseek(fd, (off_t)cur.size - (off_t)sizeof(cur), SEEK_CUR) == -1) { sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_ERRNO|SUDO_DEBUG_LINENO, - "unable to seek forward %d", - (int)cur.size - (int)sizeof(cur)); + "unable to seek forward %zd", + cur.size - ssizeof(cur)); break; } if (cur.size == 0) diff --git a/plugins/sudoers/tsgetgrpw.c b/plugins/sudoers/tsgetgrpw.c index 19fb798c4..f9843ace0 100644 --- a/plugins/sudoers/tsgetgrpw.c +++ b/plugins/sudoers/tsgetgrpw.c @@ -350,13 +350,14 @@ testsudoers_getgrouplist2_v1(const char *name, GETGROUPS_T basegid, GETGROUPS_T **groupsp, int *ngroupsp) { GETGROUPS_T *groups = *groupsp; - int i, grpsize, ngroups = 1; + int i, ngroups = 1; + long grpsize; int ret = -1; struct group *grp; if (groups == NULL) { /* Dynamically-sized group vector. */ - grpsize = (int)sysconf(_SC_NGROUPS_MAX); + grpsize = sysconf(_SC_NGROUPS_MAX); if (grpsize < 0) grpsize = NGROUPS_MAX; groups = reallocarray(NULL, grpsize, 4 * sizeof(*groups)); diff --git a/src/sudo.c b/src/sudo.c index bd2b2c2c2..e3f4837a8 100644 --- a/src/sudo.c +++ b/src/sudo.c @@ -437,7 +437,7 @@ get_user_groups(const char *user, struct sudo_cred *cred) cred->groups = NULL; group_source = sudo_conf_group_source(); if (group_source != GROUP_SOURCE_DYNAMIC) { - int maxgroups = (int)sysconf(_SC_NGROUPS_MAX); + long maxgroups = sysconf(_SC_NGROUPS_MAX); if (maxgroups < 0) maxgroups = NGROUPS_MAX;