CVE-2022-50728
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
24/12/2025
Last modified:
29/12/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
s390/lcs: Fix return type of lcs_start_xmit()<br />
<br />
With clang&#39;s kernel control flow integrity (kCFI, CONFIG_CFI_CLANG),<br />
indirect call targets are validated against the expected function<br />
pointer prototype to make sure the call target is valid to help mitigate<br />
ROP attacks. If they are not identical, there is a failure at run time,<br />
which manifests as either a kernel panic or thread getting killed. A<br />
proposed warning in clang aims to catch these at compile time, which<br />
reveals:<br />
<br />
drivers/s390/net/lcs.c:2090:21: error: incompatible function pointer types initializing &#39;netdev_tx_t (*)(struct sk_buff *, struct net_device *)&#39; (aka &#39;enum netdev_tx (*)(struct sk_buff *, struct net_device *)&#39;) with an expression of type &#39;int (struct sk_buff *, struct net_device *)&#39; [-Werror,-Wincompatible-function-pointer-types-strict]<br />
.ndo_start_xmit = lcs_start_xmit,<br />
^~~~~~~~~~~~~~<br />
drivers/s390/net/lcs.c:2097:21: error: incompatible function pointer types initializing &#39;netdev_tx_t (*)(struct sk_buff *, struct net_device *)&#39; (aka &#39;enum netdev_tx (*)(struct sk_buff *, struct net_device *)&#39;) with an expression of type &#39;int (struct sk_buff *, struct net_device *)&#39; [-Werror,-Wincompatible-function-pointer-types-strict]<br />
.ndo_start_xmit = lcs_start_xmit,<br />
^~~~~~~~~~~~~~<br />
<br />
->ndo_start_xmit() in &#39;struct net_device_ops&#39; expects a return type of<br />
&#39;netdev_tx_t&#39;, not &#39;int&#39;. Adjust the return type of lcs_start_xmit() to<br />
match the prototype&#39;s to resolve the warning and potential CFI failure,<br />
should s390 select ARCH_SUPPORTS_CFI_CLANG in the future.
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/20022d551f2064a194d8e0acb6cd7a85094a17b2
- https://git.kernel.org/stable/c/5ad774fb823c24bbeb21a15a67103ea7a6f5b928
- https://git.kernel.org/stable/c/69669820844f81a77b6db24b86581320ae4d17af
- https://git.kernel.org/stable/c/7b4da3fcd513b8e67823eb80da37aad99b3339c1
- https://git.kernel.org/stable/c/bb16db8393658e0978c3f0d30ae069e878264fa3
- https://git.kernel.org/stable/c/cda74cdc280ba35c8993e7517bac5c257ff36f18
- https://git.kernel.org/stable/c/d49cc2b705711fb8fb849e7c660929b2100360b7
- https://git.kernel.org/stable/c/e684215d8a903752e2b0cc946517fb61e57a880a
- https://git.kernel.org/stable/c/ebc3c77785dc8b5b626309c0032a38fbb139287a



