diff options
author | maxim <maxim@FreeBSD.org> | 2002-12-15 09:41:46 +0000 |
---|---|---|
committer | maxim <maxim@FreeBSD.org> | 2002-12-15 09:41:46 +0000 |
commit | 523771c06acff197263964274492a9ba7ba01c6c (patch) | |
tree | 944810df24097bdb5d0b63804706c73f184349cb /sys/kern/sysv_msg.c | |
parent | c2efb986aa7a9448a5b0efbbf48d022f86f9c3ba (diff) | |
download | FreeBSD-src-523771c06acff197263964274492a9ba7ba01c6c.zip FreeBSD-src-523771c06acff197263964274492a9ba7ba01c6c.tar.gz |
o Clear a high bit of ipc_perm.seq so msgget(3) never returns a
negative message queue id.
PR: kern/46122
Submitted by: Vladimir B.Grebenschikov <vova@sw.ru>
MFC after: 2 weeks
Diffstat (limited to 'sys/kern/sysv_msg.c')
-rw-r--r-- | sys/kern/sysv_msg.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/sysv_msg.c b/sys/kern/sysv_msg.c index 86c6b80..d85cf29 100644 --- a/sys/kern/sysv_msg.c +++ b/sys/kern/sysv_msg.c @@ -538,7 +538,7 @@ msgget(td, uap) msqptr->msg_perm.gid = cred->cr_gid; msqptr->msg_perm.mode = (msgflg & 0777); /* Make sure that the returned msqid is unique */ - msqptr->msg_perm.seq++; + msqptr->msg_perm.seq = (msqptr->msg_perm.seq + 1) & 0x7fff; msqptr->msg_first = NULL; msqptr->msg_last = NULL; msqptr->msg_cbytes = 0; |