Addresses: https://github.com/karelzak/util-linux/issues/1356
Signed-off-by: Karel Zak <kzak@redhat.com>
ask_sem = 1;
break;
case 'p':
+ {
+ char *end = NULL;
+ errno = 0;
permission = strtoul(optarg, NULL, 8);
+ if (errno || optarg == end || (end && *end))
+ err(EXIT_FAILURE, _("failed to parse mode"));
break;
-
+ }
case 'h':
usage();
case 'V':
static int remove_arg_list(type_id type, int argc, char **argv)
{
int id;
- char *end;
+ char *end = NULL;
int nb_errors = 0;
do {
+ errno = 0;
id = strtoul(argv[0], &end, 10);
- if (*end != 0) {
+ if (errno || !end || *end != 0) {
warnx(_("invalid id: %s"), argv[0]);
nb_errors++;
} else {