summaryrefslogtreecommitdiff
path: root/ipcrm.c
diff options
context:
space:
mode:
Diffstat (limited to 'ipcrm.c')
-rw-r--r--ipcrm.c5
1 files 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);