ip6_forward: Free the ICMPv6 copy on all error paths
ip6_forward() keeps a copy of the start of the packet in case it has
to send an ICMPv6 error. Every exit must either pass the copy to
icmp6_error() or icmp6_redirect_output(), or free it. Three exits did
neither and leaked the copy:
- the destination scope check, when a packet would leave the zone of
its destination address;
- a packet that a pfil hook redirected to a local address, which is
queued for local input;
- a packet whose checksum has to be computed here and whose last
header offset is not valid.
Free the copy in these three cases.
Reviewed by: tuexen, pouria
Fixes: 8a006adb2441 ("Add support for IPv6 to ipfw fwd...")
Fixes: bcb298fa9e23 ("sctp, tcp, udp: improve deferred computation...")
[3 lines not shown]
[lldb][NativePDB] Mark the prologue end and epilogue start in line tables (#238506)
`S_GPROC32`/`S_LPROC32` records say where a procedure's prologue ends
(`DbgStart`) and its epilogue begins (`DbgEnd`), but `ParseLineTable`
ignored them, and `IsFunctionPrologue`/`IsFunctionEpilogue` were stubs.
For a function written on one line (`int get() { return n; }`), lldb
then took the prologue to be empty, and `breakpoint set -n Struct::get`
stopped before this was stored (`"Stopped in a C++ method, but 'this'
isn't available"`).
This patch sets `is_prologue_end` on the line entry at `DbgStart`
(inserting one if needed) and `is_epilogue_begin` at `DbgEnd`, and
removes the stubs. MSVC fills both offsets in and the new test uses it.
Assisted by Claude.
rdar://191715661
[ELF] MarkLive: Walk each level depth-first with work sharing on idle. NFC (#242181)
markParallel (#189321) visits each queued section's subtree to depth 3.
On deep narrow graphs the level barrier overhead is large.
Adopt the approach of #240243 (lld/MachO): each worker claims chunks of
a level and walks depth-first on its own stack. Once another worker is
idle, try donating the stack to the next level, but only after 256
visits in this level to avoid barrier overhead due to entering the next
level.
if_geneve: Read the outer IP header from the start of the packet
The offset passed to geneve_udp_input() points at the UDP header,
which for IPv6 comes after any extension headers.
The outer header is always at the start of the mbuf.
Reported by: llm-postcr
Fixes: e44d2e941e8e ("if_geneve: Add Support for Geneve (RFC8926)")
[RISCV][P-ext] Add the missing zext_invec pattern (#242288)
Fixes #242268. We mark `v2i32 zext_invec` as legal, but we missed the
pattern `v8i8 -> v2i32`.
[CodeGen] Declare most CommandFlags options in TableGen (#242159)
Move the 34 RegisterCodeGenFlags options that only
codegen::getTargetOptions and codegen::setFunctionAttributes read into a
private CodeGenToolOptions struct, which codegen::getToolOptions adds to
the tool options, and remove their getters from CommandFlags.h.
getNumOccurrences checks become optional fields.
Like other tool options, these are listed only by -help-hidden.
clang-linker-wrapper, which does not pass the tool options, now rejects
them in -mllvm and --offload-opt.
LLM-aided
[flang] Classify IEEE_ARITHMETIC subroutines as SIMPLE and fix DO CONCURRENT checks (#232479)
Mark IEEE rounding and underflow mode subroutines as `SIMPLE` per F2023.
Fix intrinsic-module provenance checking for C1145/C1146, update the
prohibited procedure list, and add regression tests.
F2023 C1145 no longer prohibits `IEEE_SET_FLAG` inside `DO CONCURRENT`,
so these calls are now accepted.
Fixes #231858
[RegisterCoalescer] Keep endpoints of lane-carrying IMPLICIT_DEF (#230141)
Since #196895, pruneValues discards the endpoints of a value copied from
an erasable IMPLICIT_DEF. A partial IMPLICIT_DEF without `<read-undef>`
carries other lanes those endpoints may read, so discarding them leaves
a hole in the live range. Keep them unless the source has no ValidLanes.
Assisted-by: Claude Opus 5.5
Attributor: Volatile calls may access inaccessible memory (#239071)
AAMemoryLocation only used the callee's memory locations for calls, so
a function doing a volatile memcpy between its arguments was
memory(argmem: readwrite). Add inaccessible memory for volatile calls,
as CallBase::getMemoryEffects does.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
ARM: Use inline register class syntax in MIR tests (#242053)
Delete the registers section when unnecessary.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[Offload][Cuda] make getAllocInfo report not found on host ptr (#242363)
On some newer CUDA stacks getAllocInfo returns success on host pointers
even it doesn't provide information. Make the call return `NOT_FOUND` in
this situation as other plugins.
Fixes regression from #241895
Bug analysis and solution provided by Claude.
---------
Co-authored-by: Ivan R. Ivanov <iivanov at nvidia.com>
[libc] Update minimum clang version for cfloat128. (#242396)
This fixes a build issue caused by #241999, which updated the minimum
version for using `__float128`.
A follow-up will move LIBC_TYPES_HAS_FLOAT128 from
llvm-libc-types/float128.h to llvm-libc-macros/ so it can be used in
cfloat128-macros.h.
science/code_saturne: Fix build with TeX Live 2026
LaTeX 2025-11-01, shipped with TeX Live 2026, no longer ignores \par
inside array cells, so the blank lines in some displayed equations of
the theory manual now stop pdflatex with "Missing $ inserted". Remove
the blank lines, since they have no effect on the typeset output.
Approved by: blanket, build fix
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D61427
[CIR] Lower get_element's leading zero with the index's type
The GEP that cir.get_element lowers to starts with a zero index. It was
a raw constant, which MLIR's translation always emits as i32, so CIR
produced `getelementptr [N x T], ptr %p, i32 0, i64 %i` where classic
codegen produces `i64 0, i64 %i`. The zero is now a constant of the
index operand's type, so the two match on x86_64 and on AMDGPU for flat,
global and constant pointers.
In AMDGPU's 32-bit private and local address spaces, the lowering
truncates the index to i32 before the GEP, so both indices are i32 there
while classic codegen keeps them i64.
Assisted-by: Cursor / Claude Opus 5.5
Change pte_update() to return the actual-pte rather than a bool. When
they don't match, we need to re-load the old PTE anyway, so this saves
a redundant load.
vifm: Update to version 0.14.5
Security
Fixed unsafe IPC pipe reuse (CVE-2026-110237). Thanks to Andrew Savchenko and Salvatore Bonaccorso (a.k.a. carnil).
AppImage
Updated AppImage runtime to a recent version. Thanks to Alexander Gottweis (a.k.a. stablestud).
Documentation
Improved wording of documentation sections describing filters and patterns.
Improved wording of documentation covering :view. Thanks to CaptainFantastic.
Slightly improve documentation of columncount: in 'lsoptions'.
Fixed invocation form of :locate that passes parameters without escaping not being documented.
:set command and options
Fixed printing the value of 'previewoptions': remove trailing comma and fix maxtreedepth: and graphicsdelay: being mutually exclusive.
File list
Avoid views scrolling unnecessarily in response to file-system changes that add or remove files before the first visible line. Thanks to justpretending2.
[25 lines not shown]