From 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Wed, 2 Sep 2026 15:31:14 -0700 Subject: treewide: refresh kmalloc_obj() conversions This is another run of the Coccinelle script for converting kmalloc() family of allocations to kmalloc_obj() via the existing rules in scripts/coccinelle/api/kmalloc_objs.cocci This catches both the set of kmalloc() uses added since the first kmalloc_obj() conversions in v7.0 and adds a large group missed in the first pass due to Coccinelle not interacting well with the cleanup.h scoped_...() family of macros[1]. I worked around this with spatch's "--macro-file" argument to a file with all the scoped_...() macros mapped to Coccinelle's YACFE_ITERATOR[2] as that was the closest viable control flow indicator I could find. Build tested allmodconfig on x86, arm64, arm, loongarch, mips, powerpc, riscv, and s390 with no new warnings. Link: https://lore.kernel.org/lkml/202609021314.8A9C0B8@keescook/ [1] Link: https://github.com/coccinelle/coccinelle/blob/master/standard.h [2] Signed-off-by: Kees Cook --- Documentation/netlink/specs/fou.yaml | 134 +++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 Documentation/netlink/specs/fou.yaml (limited to 'Documentation/netlink/specs/fou.yaml') diff --git a/Documentation/netlink/specs/fou.yaml b/Documentation/netlink/specs/fou.yaml new file mode 100644 index 000000000..331f1b342 --- /dev/null +++ b/Documentation/netlink/specs/fou.yaml @@ -0,0 +1,134 @@ +# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) +--- +name: fou + +protocol: genetlink-legacy + +doc: | + Foo-over-UDP. + +c-family-name: fou-genl-name +c-version-name: fou-genl-version +max-by-define: true +kernel-policy: global + +definitions: + - + type: enum + name: encap-type + name-prefix: fou-encap- + enum-name: + entries: [unspec, direct, gue] + +attribute-sets: + - + name: fou + name-prefix: fou-attr- + attributes: + - + name: unspec + type: unused + value: 0 + - + name: port + type: u16 + byte-order: big-endian + - + name: af + type: u8 + - + name: ipproto + type: u8 + checks: + min: 1 + - + name: type + type: u8 + - + name: remcsum-nopartial + type: flag + - + name: local-v4 + type: u32 + - + name: local-v6 + type: binary + checks: + exact-len: 16 + - + name: peer-v4 + type: u32 + - + name: peer-v6 + type: binary + checks: + exact-len: 16 + - + name: peer-port + type: u16 + byte-order: big-endian + - + name: ifindex + type: s32 + +operations: + list: + - + name: unspec + doc: unused + value: 0 + + - + name: add + doc: Add port. + attribute-set: fou + + dont-validate: [strict, dump] + flags: [admin-perm] + + do: + request: &all_attrs + attributes: + - port + - ipproto + - type + - remcsum-nopartial + - local-v4 + - peer-v4 + - local-v6 + - peer-v6 + - peer-port + - ifindex + + - + name: del + doc: Delete port. + attribute-set: fou + + dont-validate: [strict, dump] + flags: [admin-perm] + + do: + request: &select_attrs + attributes: + - af + - ifindex + - port + - peer-port + - local-v4 + - peer-v4 + - local-v6 + - peer-v6 + + - + name: get + doc: Get tunnel info. + attribute-set: fou + dont-validate: [strict, dump] + + do: + request: *select_attrs + reply: *all_attrs + + dump: + reply: *all_attrs -- cgit v1.3.1