Fixed even more signedness and conversion issues
This should be the last of them.
This commit is contained in:
@@ -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);
|
||||||
|
@@ -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);
|
||||||
|
@@ -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)
|
||||||
|
@@ -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));
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user