Fixed even more signedness and conversion issues

This should be the last of them.
This commit is contained in:
Rose
2023-07-03 13:06:45 -04:00
parent d3dc70ab62
commit cbed9daa46
5 changed files with 24 additions and 23 deletions

View File

@@ -159,10 +159,10 @@ struct sudoers_parse_tree parsed_policy = {
* Local prototypes * Local prototypes
*/ */
static void init_options(struct command_options *opts); 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 bool add_userspec(struct member *, struct privilege *);
static struct defaults *new_default(char *, char *, short); 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 sudo_command *new_command(char *, char *);
static struct command_digest *new_digest(unsigned int, char *); static struct command_digest *new_digest(unsigned int, char *);
static void alias_error(const char *name, int errnum); static void alias_error(const char *name, int errnum);
@@ -3406,7 +3406,7 @@ yyreturnlab:
void void
sudoerserrorf(const char *fmt, ...) sudoerserrorf(const char *fmt, ...)
{ {
const int column = sudolinebuf.toke_start + 1; const int column = (int)(sudolinebuf.toke_start + 1);
va_list ap; va_list ap;
debug_decl(sudoerserrorf, SUDOERS_DEBUG_PARSER); debug_decl(sudoerserrorf, SUDOERS_DEBUG_PARSER);
@@ -3438,8 +3438,8 @@ sudoerserrorf(const char *fmt, ...)
tofree = NULL; tofree = NULL;
} }
} }
sudo_printf(SUDO_CONV_ERROR_MSG, _("%s:%d:%d: %s\n"), sudoers, sudo_printf(SUDO_CONV_ERROR_MSG, _("%s:%d:%zu: %s\n"), sudoers,
this_lineno, (int)sudolinebuf.toke_start + 1, s); this_lineno, sudolinebuf.toke_start + 1, s);
free(tofree); free(tofree);
va_end(ap); va_end(ap);
sudoers_setlocale(oldlocale, NULL); sudoers_setlocale(oldlocale, NULL);
@@ -3515,7 +3515,7 @@ new_default(char *var, char *val, short op)
d->op = op; d->op = op;
/* d->binding = NULL; */ /* d->binding = NULL; */
d->line = this_lineno; d->line = this_lineno;
d->column = sudolinebuf.toke_start + 1; d->column = (int)(sudolinebuf.toke_start + 1);
d->file = sudo_rcstr_addref(sudoers); d->file = sudo_rcstr_addref(sudoers);
HLTQ_INIT(d, entries); HLTQ_INIT(d, entries);
@@ -3523,7 +3523,7 @@ new_default(char *var, char *val, short op)
} }
static struct member * static struct member *
new_member(char *name, int type) new_member(char *name, short type)
{ {
struct member *m; struct member *m;
debug_decl(new_member, SUDOERS_DEBUG_PARSER); 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). * or runas users the entries apply to (determined by the type).
*/ */
static bool 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 *d, *next;
struct defaults_binding *binding; 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. */ /* We already parsed the newline so sudolineno is off by one. */
u->line = sudolineno - 1; u->line = sudolineno - 1;
u->column = sudolinebuf.toke_start + 1; u->column = (int)(sudolinebuf.toke_start + 1);
u->file = sudo_rcstr_addref(sudoers); u->file = sudo_rcstr_addref(sudoers);
parser_leak_remove(LEAK_MEMBER, members); parser_leak_remove(LEAK_MEMBER, members);
HLTQ_TO_TAILQ(&u->users, members, entries); HLTQ_TO_TAILQ(&u->users, members, entries);

View File

@@ -76,10 +76,10 @@ struct sudoers_parse_tree parsed_policy = {
* Local prototypes * Local prototypes
*/ */
static void init_options(struct command_options *opts); 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 bool add_userspec(struct member *, struct privilege *);
static struct defaults *new_default(char *, char *, short); 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 sudo_command *new_command(char *, char *);
static struct command_digest *new_digest(unsigned int, char *); static struct command_digest *new_digest(unsigned int, char *);
static void alias_error(const char *name, int errnum); static void alias_error(const char *name, int errnum);
@@ -1223,7 +1223,7 @@ group : ALIAS {
void void
sudoerserrorf(const char *fmt, ...) sudoerserrorf(const char *fmt, ...)
{ {
const int column = sudolinebuf.toke_start + 1; const int column = (int)(sudolinebuf.toke_start + 1);
va_list ap; va_list ap;
debug_decl(sudoerserrorf, SUDOERS_DEBUG_PARSER); debug_decl(sudoerserrorf, SUDOERS_DEBUG_PARSER);
@@ -1255,8 +1255,8 @@ sudoerserrorf(const char *fmt, ...)
tofree = NULL; tofree = NULL;
} }
} }
sudo_printf(SUDO_CONV_ERROR_MSG, _("%s:%d:%d: %s\n"), sudoers, sudo_printf(SUDO_CONV_ERROR_MSG, _("%s:%d:%zu: %s\n"), sudoers,
this_lineno, (int)sudolinebuf.toke_start + 1, s); this_lineno, sudolinebuf.toke_start + 1, s);
free(tofree); free(tofree);
va_end(ap); va_end(ap);
sudoers_setlocale(oldlocale, NULL); sudoers_setlocale(oldlocale, NULL);
@@ -1332,7 +1332,7 @@ new_default(char *var, char *val, short op)
d->op = op; d->op = op;
/* d->binding = NULL; */ /* d->binding = NULL; */
d->line = this_lineno; d->line = this_lineno;
d->column = sudolinebuf.toke_start + 1; d->column = (int)(sudolinebuf.toke_start + 1);
d->file = sudo_rcstr_addref(sudoers); d->file = sudo_rcstr_addref(sudoers);
HLTQ_INIT(d, entries); HLTQ_INIT(d, entries);
@@ -1340,7 +1340,7 @@ new_default(char *var, char *val, short op)
} }
static struct member * static struct member *
new_member(char *name, int type) new_member(char *name, short type)
{ {
struct member *m; struct member *m;
debug_decl(new_member, SUDOERS_DEBUG_PARSER); 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). * or runas users the entries apply to (determined by the type).
*/ */
static bool 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 *d, *next;
struct defaults_binding *binding; 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. */ /* We already parsed the newline so sudolineno is off by one. */
u->line = sudolineno - 1; u->line = sudolineno - 1;
u->column = sudolinebuf.toke_start + 1; u->column = (int)(sudolinebuf.toke_start + 1);
u->file = sudo_rcstr_addref(sudoers); u->file = sudo_rcstr_addref(sudoers);
parser_leak_remove(LEAK_MEMBER, members); parser_leak_remove(LEAK_MEMBER, members);
HLTQ_TO_TAILQ(&u->users, members, entries); HLTQ_TO_TAILQ(&u->users, members, entries);

View File

@@ -187,8 +187,8 @@ ts_find_record(int fd, struct timestamp_entry *key, struct timestamp_entry *entr
cur.size, sizeof(cur)); cur.size, sizeof(cur));
if (lseek(fd, (off_t)cur.size - (off_t)sizeof(cur), SEEK_CUR) == -1) { 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, sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_ERRNO|SUDO_DEBUG_LINENO,
"unable to seek forward %d", "unable to seek forward %zd",
(int)cur.size - (int)sizeof(cur)); cur.size - ssizeof(cur));
break; break;
} }
if (cur.size == 0) if (cur.size == 0)

View File

@@ -350,13 +350,14 @@ testsudoers_getgrouplist2_v1(const char *name, GETGROUPS_T basegid,
GETGROUPS_T **groupsp, int *ngroupsp) GETGROUPS_T **groupsp, int *ngroupsp)
{ {
GETGROUPS_T *groups = *groupsp; GETGROUPS_T *groups = *groupsp;
int i, grpsize, ngroups = 1; int i, ngroups = 1;
long grpsize;
int ret = -1; int ret = -1;
struct group *grp; struct group *grp;
if (groups == NULL) { if (groups == NULL) {
/* Dynamically-sized group vector. */ /* Dynamically-sized group vector. */
grpsize = (int)sysconf(_SC_NGROUPS_MAX); grpsize = sysconf(_SC_NGROUPS_MAX);
if (grpsize < 0) if (grpsize < 0)
grpsize = NGROUPS_MAX; grpsize = NGROUPS_MAX;
groups = reallocarray(NULL, grpsize, 4 * sizeof(*groups)); groups = reallocarray(NULL, grpsize, 4 * sizeof(*groups));

View File

@@ -437,7 +437,7 @@ get_user_groups(const char *user, struct sudo_cred *cred)
cred->groups = NULL; cred->groups = NULL;
group_source = sudo_conf_group_source(); group_source = sudo_conf_group_source();
if (group_source != GROUP_SOURCE_DYNAMIC) { if (group_source != GROUP_SOURCE_DYNAMIC) {
int maxgroups = (int)sysconf(_SC_NGROUPS_MAX); long maxgroups = sysconf(_SC_NGROUPS_MAX);
if (maxgroups < 0) if (maxgroups < 0)
maxgroups = NGROUPS_MAX; maxgroups = NGROUPS_MAX;