No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Hangbin Liu b8fcb8f539 IPv6: reply ICMP error if the first fragment don't include all headers
commit 2efdaaaf883a143061296467913c01aa1ff4b3ce upstream.

Based on RFC 8200, Section 4.5 Fragment Header:

  -  If the first fragment does not include all headers through an
     Upper-Layer header, then that fragment should be discarded and
     an ICMP Parameter Problem, Code 3, message should be sent to
     the source of the fragment, with the Pointer field set to zero.

Checking each packet header in IPv6 fast path will have performance impact,
so I put the checking in ipv6_frag_rcv().

As the packet may be any kind of L4 protocol, I only checked some common
protocols' header length and handle others by (offset + 1) > skb->len.
Also use !(frag_off & htons(IP6_OFFSET)) to catch atomic fragments
(fragmented packet with only one fragment).

When send ICMP error message, if the 1st truncated fragment is ICMP message,
icmp6_send() will break as is_ineligible() return true. So I added a check
in is_ineligible() to let fragment packet with nexthdr ICMP but no ICMP header
return false.

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Aviraj CJ <acj@cisco.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-02-03 23:25:55 +01:00
arch arm64: mm: use single quantity to represent the PA to VA translation 2021-01-30 13:54:10 +01:00
block bfq: Fix computation of shallow depth 2021-01-19 18:26:15 +01:00
certs
crypto crypto: asym_tpm: correct zero out potential secrets 2021-01-12 20:16:17 +01:00
Documentation dm integrity: conditionally disable "recalculate" feature 2021-01-30 13:54:10 +01:00
drivers dm integrity: conditionally disable "recalculate" feature 2021-01-30 13:54:10 +01:00
fs fs: fix lazytime expiration handling in __writeback_single_inode() 2021-01-30 13:54:11 +01:00
include ICMPv6: Add ICMPv6 Parameter Problem, code 3 definition 2021-02-03 23:25:55 +01:00
init exec: Transform exec_update_mutex into a rw_semaphore 2021-01-09 13:44:55 +01:00
ipc
kernel tracing: Fix race in trace_open and buffer resize call 2021-01-30 13:54:10 +01:00
lib lib/raid6: Let $(UNROLL) rules work with macOS userland 2021-01-19 18:26:15 +01:00
LICENSES
mm Revert "mm/slub: fix a memory leak in sysfs_slab_add()" 2021-01-30 13:54:09 +01:00
net IPv6: reply ICMP error if the first fragment don't include all headers 2021-02-03 23:25:55 +01:00
samples samples: bpf: Fix lwt_len_hist reusing previous BPF map 2020-12-30 11:51:12 +01:00
scripts depmod: handle the case of /sbin/depmod without /sbin in PATH 2021-01-12 20:16:10 +01:00
security dump_common_audit_data(): fix racy accesses to ->d_name 2021-01-19 18:26:16 +01:00
sound ASoC: Intel: haswell: Add missing pm_ops 2021-01-27 11:47:42 +01:00
tools tools: Factor HOSTCC, HOSTLD, HOSTAR definitions 2021-01-30 13:54:10 +01:00
usr
virt kvm: check tlbs_dirty directly 2021-01-12 20:16:22 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Documentation/llvm: add documentation on building w/ Clang/LLVM 2020-08-26 10:40:46 +02:00
Makefile Linux 5.4.94 2021-01-30 13:54:11 +01:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.