aboutsummaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorSADA Kenji <sada@FreeBSD.org>1999-04-21 13:30:01 +0000
committerSADA Kenji <sada@FreeBSD.org>1999-04-21 13:30:01 +0000
commit565592bd9cb804b6e6ce47abedcfba472a8b0d73 (patch)
tree0f7db3452c021fb4c134ca2a57f0cb89192cf1e8 /sys/kern
parent866a5402874fc6b6adec62297aa46bbbcf7fc914 (diff)
downloadsrc-565592bd9cb804b6e6ce47abedcfba472a8b0d73.tar.gz
src-565592bd9cb804b6e6ce47abedcfba472a8b0d73.zip
The function msgrcv() could copy larger data than it should do
under some circumstances. PR: kern/10765 Submitted by: Yasuhito FUTATSUKI <futatuki@fureai.or.jp>
Notes
Notes: svn path=/head/; revision=45921
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/sysv_msg.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/kern/sysv_msg.c b/sys/kern/sysv_msg.c
index 8b010b5566f6..334bbf4844a1 100644
--- a/sys/kern/sysv_msg.c
+++ b/sys/kern/sysv_msg.c
@@ -1,4 +1,4 @@
-/* $Id: sysv_msg.c,v 1.18 1998/03/30 09:50:35 phk Exp $ */
+/* $Id: sysv_msg.c,v 1.19 1999/01/30 12:21:48 phk Exp $ */
/*
* Implementation of SVID messages
@@ -996,10 +996,10 @@ msgrcv(p, uap)
for (len = 0; len < msgsz; len += msginfo.msgssz) {
size_t tlen;
- if (msgsz > msginfo.msgssz)
+ if (msgsz - len > msginfo.msgssz)
tlen = msginfo.msgssz;
else
- tlen = msgsz;
+ tlen = msgsz - len;
if (next <= -1)
panic("next too low #3");
if (next >= msginfo.msgseg)