From: netdev-bot+sashiko@kernel.org
To: fmancera@suse.de
Cc: netdev@vger.kernel.org, horms@kernel.org, kuba@kernel.org,
pabeni@redhat.com, edumazet@kernel.org, davem@davemloft.net,
edumazet@google.com, ebiggers@kernel.org, ardb@kernel.org,
krzk@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 15/16 net-next v2] netlabel: cipso: introduce CONFIG_CIPSO to decouple IPv4 dependency
Date: Fri, 02 Oct 2026 10:32:30 +0000 [thread overview]
Message-ID: <179093715004.434549.18075937713177476140@kernel.org> (raw)
In-Reply-To: <20260928193046.6698-16-fmancera@suse.de>
Thank you for your contribution! Sashiko AI review found 2 potential
issue(s) to consider.
Critical: 0 · High: 0 · Medium: 1 · Low: 1
If you believe none of the issues are legitimate, please reply to each
issue of Medium severity or higher and explain why the AI is wrong.
If any of them are legitimate and you plan to respin, please let patchwork
know by including "pw-bot: cr" as a separate line at the end of your reply
(one such reply per series is enough).
- [Medium] The NetLabel management PROTOCOLS dump
(netlbl_mgmt_protocols() in net/netlabel/netlabel_mgmt.c) always lists…
- [Low] Concern about commit-message accuracy.
--
I found two possible issues in this patch and wrote them up as an inline reply for the list, shown below:
- **Medium:** with CONFIG_CIPSO=n, the NetLabel PROTOCOLS dump in netlbl_mgmt_protocols() still lists CIPSOv4 as available, but the protocol cannot be used.
- **Low:** the commit message says NetLabel and Smack can run on IPv6-only kernels. At this commit that setup cannot be selected yet, and the message doesn't say that Smack loses CIPSO labelling in it.
I checked both against the code at this commit: the protocol dump, the CIPSOv4 add path in netlbl_mgmt_add_common(), and Smack's smk_cipso_doi() and its callers.
netlabel: cipso: introduce CONFIG_CIPSO to decouple IPv4 dependency
This commit adds a CONFIG_CIPSO symbol, enabled when both NETLABEL and
IPV4 are set. The CIPSO objects, sysctls and kernel APIs are now gated on
it. The IPV4 dependency is dropped from the NetLabel Kconfig sourcing and
from Smack.
> By safely stubbing out the CIPSO netlabel_kapi functions to return
> -ENOSYS when disabled, this allows NetLabel and Smack to be successfully
> built and used on IPv6-only kernels.
[Severity: Low]
This isn't a bug, but at this commit CONFIG_IPV4 is still def_bool y in
net/ipv4/Kconfig, so a CIPSO=n configuration cannot be selected yet. The
IPv6-only case only becomes reachable with the follow-up patch "ipv4: make
CONFIG_IPV4 boolean". Should the commit message say that?
With CIPSO=n, Smack also runs without CIPSO labelling. The boot-time call
in init_smk_fs() fails without any message, because its return value is
cast to void:
security/smack/smackfs.c:init_smk_fs() {
...
(void) smk_cipso_doi(SMACK_CIPSO_DOI_DEFAULT,
GFP_KERNEL | __GFP_NOFAIL);
...
}
Writes to /smack/doi return -ENOSYS through this path:
smk_write_doi()->smk_cipso_doi()->netlbl_cfg_cipsov4_add()->cipso_v4_doi_add()
Could the commit message mention this change in Smack's behaviour?
> diff --git a/net/netlabel/Kconfig b/net/netlabel/Kconfig
> index 4383ac29693ec..bcc27196d5bd7 100644
> --- a/net/netlabel/Kconfig
> +++ b/net/netlabel/Kconfig
> @@ -17,3 +17,7 @@ config NETLABEL
> * https://github.com/netlabel/netlabel_tools
>
> If you are unsure, say N.
> +
> +config CIPSO
> + def_bool y
> + depends on NETLABEL && IPV4
> diff --git a/net/netlabel/Makefile b/net/netlabel/Makefile
> index 5a46381a64e77..8afc1bf004243 100644
> --- a/net/netlabel/Makefile
> +++ b/net/netlabel/Makefile
> @@ -12,5 +12,5 @@ obj-y += netlabel_mgmt.o
>
> # protocol modules
> obj-y += netlabel_unlabeled.o
> -obj-y += netlabel_cipso_v4.o
> +obj-$(CONFIG_CIPSO) += netlabel_cipso_v4.o
> obj-$(subst m,y,$(CONFIG_IPV6)) += netlabel_calipso.o
> diff --git a/net/netlabel/netlabel_cipso_v4.h b/net/netlabel/netlabel_cipso_v4.h
> index 9518ab56ec98f..fb718f86bcbd7 100644
> --- a/net/netlabel/netlabel_cipso_v4.h
> +++ b/net/netlabel/netlabel_cipso_v4.h
> @@ -147,6 +147,13 @@ enum {
> #define NLBL_CIPSOV4_A_MAX (__NLBL_CIPSOV4_A_MAX - 1)
>
> /* NetLabel protocol functions */
> +#if IS_ENABLED(CONFIG_CIPSO)
> int netlbl_cipsov4_genl_init(void);
> +#else
> +static inline int netlbl_cipsov4_genl_init(void)
> +{
> + return 0;
> +}
> +#endif
[Severity: Medium]
With CIPSO=n, this stub returns 0 and does not register the NLBL_CIPSOv4
generic netlink family. Should netlbl_mgmt_protocols() in
net/netlabel/netlabel_mgmt.c stop listing CIPSOv4 in that case? It still
lists it with no config check:
net/netlabel/netlabel_mgmt.c:netlbl_mgmt_protocols() {
...
if (protos_sent == 1) {
if (netlbl_mgmt_protocols_cb(skb,
cb,
NETLBL_NLTYPE_CIPSOV4) < 0)
goto protocols_return;
protos_sent++;
}
#if IS_ENABLED(CONFIG_IPV6)
if (protos_sent == 2) {
...
}
So an NLBL_MGMT_C_PROTOCOLS dump (for example, "netlabelctl mgmt
protocols") would report CIPSOv4 as supported on a kernel that cannot
use it.
Any attempt to set up a CIPSOv4 mapping through the management interface
then fails with -EINVAL. The cipso_v4_doi_getdef() stub always returns
NULL:
net/netlabel/netlabel_mgmt.c:netlbl_mgmt_add_common() {
...
case NETLBL_NLTYPE_CIPSOV4:
...
cipsov4 = cipso_v4_doi_getdef(tmp_val);
if (cipsov4 == NULL)
goto add_free_domain;
...
}
The kapi path, netlbl_cfg_cipsov4_map_add(), returns -ENOSYS for the same
case.
The CALIPSO entry is wrapped in IS_ENABLED(CONFIG_IPV6), which matches
how netlabel_calipso.o is built.
The dump resume cursor uses fixed indices, and CALIPSO is only sent when
protos_sent == 2. Wrapping the CIPSOv4 block in #if IS_ENABLED(CONFIG_CIPSO)
on its own would mean CALIPSO is never sent when CIPSO=n. Would the cursor
handling need to change as well?
--
Sashiko AI review · https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260928193046.6698-1-fmancera%40suse.de
next prev parent reply other threads:[~2026-10-02 10:32 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260928193046.6698-1-fmancera@suse.de>
2026-09-28 19:29 ` [PATCH 01/16 net-next v2] ipv4: introduce CONFIG_IPV4 to decouple the IPv4 stack Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
2026-09-28 19:29 ` [PATCH 02/16 net-next v2] net: core: add IPv4 fallback stubs and guards for CONFIG_IPV4=n Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
2026-09-28 19:29 ` [PATCH 03/16 net-next v2] net: inet: relocate ip_generic_getfrag and guard IPv4 socket logic Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
2026-09-28 19:30 ` [PATCH 04/16 net-next v2] tcp: move protocol agnostic TCP functions out of tcp_ipv4.c Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
2026-09-28 19:30 ` [PATCH 05/16 net-next v2] ipv4: raw: split IPv4 specific logic into raw_ipv4.c Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
2026-09-28 19:30 ` [PATCH 06/16 net-next v2] ipv4: udp: split IPv4 specific logic into udp_ipv4.c Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
2026-09-28 19:30 ` [PATCH 07/16 net-next v2] ipv4: icmp: split IPv4 specific logic into icmp_ipv4.c Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
2026-09-28 19:30 ` [PATCH 08/16 net-next v2] ipv4: ping: split IPv4 specific logic into ping_ipv4.c Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 09/16 net-next v2] ipv4: fib: split common nexthop logic to fib_core.c Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
2026-09-28 19:30 ` [PATCH 10/16 net-next v2] tunnels: guard IPv4 tunnel functions with CONFIG_IPV4 Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 11/16 net-next v2] ipv4: disable IPv4-only sysctls when CONFIG_IPV4=n Fernando Fernandez Mancera
2026-09-29 7:14 ` Joel Granados
2026-09-29 8:20 ` Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
2026-09-28 19:30 ` [PATCH 12/16 net-next v2] netfilter: ipv4: guard ip_route_me_harder() with CONFIG_IPV4 Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
2026-09-28 19:30 ` [PATCH 13/16 net-next v2] net: bridge: guard ARP/RARP proxy and suppression " Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
2026-09-28 19:30 ` [PATCH 14/16 net-next v2] wifi: mac80211: replace CONFIG_INET with CONFIG_IPV4 guards Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 15/16 net-next v2] netlabel: cipso: introduce CONFIG_CIPSO to decouple IPv4 dependency Fernando Fernandez Mancera
2026-09-30 1:37 ` Paul Moore
2026-10-02 10:32 ` netdev-bot+sashiko [this message]
2026-09-28 19:30 ` [PATCH 16/16 net-next v2] ipv4: make CONFIG_IPV4 boolean Fernando Fernandez Mancera
2026-10-02 10:32 ` netdev-bot+sashiko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=179093715004.434549.18075937713177476140@kernel.org \
--to=netdev-bot+sashiko@kernel.org \
--cc=ardb@kernel.org \
--cc=davem@davemloft.net \
--cc=ebiggers@kernel.org \
--cc=edumazet@google.com \
--cc=edumazet@kernel.org \
--cc=fmancera@suse.de \
--cc=horms@kernel.org \
--cc=krzk@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®