diff options
author | Maxim Konovalov <maxim@FreeBSD.org> | 2004-05-11 19:14:44 +0000 |
---|---|---|
committer | Maxim Konovalov <maxim@FreeBSD.org> | 2004-05-11 19:14:44 +0000 |
commit | a49b21371ae70fe2a0f88d195a4c67a842e4ce7f (patch) | |
tree | 4c994bdb0e5b16d5dedda39059abbb35d98232ac /sys/netinet | |
parent | cbb58e9c9ad6a949a1a28faf8c1d514abbb5b21f (diff) | |
download | src-a49b21371ae70fe2a0f88d195a4c67a842e4ce7f.tar.gz src-a49b21371ae70fe2a0f88d195a4c67a842e4ce7f.zip |
o Calculate a number of bytes to copy (cnt) correctly:
+----+-+-+-+-+----+----+- - - - - - - - - - - - -+----+
| | |C| | | | | | |
| IP |N|O|L|P| | IP | | IP |
| #1 |O|D|E|T| | #2 | | #n |
| |P|E|N|R| | | | |
+----+-+-+-+-+----+----+- - - - - - - - - - - - -+----+
^ ^<---- cnt - (IPOPT_MINOFF - 1) ---->|
| |
src | +-- cp[IPOPT_OFF + 1] + sizeof(struct in_addr)
|
dst +-- cp[IPOPT_OFF + 1]
PR: kern/66386
Submitted by: Andrei Iltchenko
MFC after: 3 weeks
Notes
Notes:
svn path=/head/; revision=129126
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/ip_output.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index f1f0acdcf220..98da087285e8 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -1735,7 +1735,7 @@ ip_pcbopts(optname, pcbopt, m) */ bcopy((&cp[IPOPT_OFFSET+1] + sizeof(struct in_addr)), &cp[IPOPT_OFFSET+1], - (unsigned)cnt + sizeof(struct in_addr)); + (unsigned)cnt - (IPOPT_MINOFF - 1)); break; } } |