ipcs: check errno after strto..()

Addresses: https://github.com/karelzak/util-linux/issues/1356
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2021-06-21 15:00:40 +02:00
parent b0cfd4ba3a
commit c9eea1b354
2 changed files with 9 additions and 3 deletions

View File

@ -122,9 +122,14 @@ int main(int argc, char **argv)
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':

View File

@ -125,12 +125,13 @@ static int remove_id(int type, int iskey, int id)
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 {