From 036b8429a243a42918d27eaa4716f444a44e613f Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Tue, 6 Oct 2020 12:30:39 -0400 Subject: only accept id in range [0, INT_MAX] --- ipcrm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ipcrm.c b/ipcrm.c index dd63c93..f6f0f47 100644 --- a/ipcrm.c +++ b/ipcrm.c @@ -58,11 +58,12 @@ static struct ipcrm *ipcrm_q(ipc_type type, const char *id, struct ipcrm *head) errno = 0; char *end = NULL; - add->id = strtol(id, &end, 0); - if ((end && *end) || (add->id == LONG_MAX && errno) || (add->id < 0)) { + long l = strtol(id, &end, 0); + if ((end && *end) || (l > INT_MAX) || (l < 0)) { fprintf(stderr, "ipcrm: %s: %s\n", id, strerror(EINVAL)); return NULL; } + add->id = l; if (type == MSGKEY) { add->id = msgget(add->id, 0); -- cgit v1.2.1