In the Linux kernel, the following vulnerability has been resolved:
wifi: carl9170: re-fix fortified-memset warning
The carl9170txrelease() function sometimes triggers a fortified-memset warning in my randconfig builds:
In file included from include/linux/string.h:254, from drivers/net/wireless/ath/carl9170/tx.c:40: In function 'fortifymemsetchk', inlined from 'carl9170txrelease' at drivers/net/wireless/ath/carl9170/tx.c:283:2, inlined from 'krefput' at include/linux/kref.h:65:3, inlined from 'carl9170txputskb' at drivers/net/wireless/ath/carl9170/tx.c:342:9: include/linux/fortify-string.h:493:25: error: call to '_writeoverflowfield' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use structgroup()? [-Werror=attribute-warning] 493 | _writeoverflowfield(psize_field, size);
Kees previously tried to avoid this by using memsetafter(), but it seems this does not fully address the problem. I noticed that the memsetafter() here is done on a different part of the union (status) than the original cast was from (ratedriverdata), which may confuse the compiler.
Unfortunately, the memsetafter() trick does not work on driverrates[] because that is part of an anonymous struct, and I could not get struct_group() to do this either. Using two separate memset() calls on the two members does address the warning though.
[
{
"deprecated": false,
"target": {
"file": "drivers/net/wireless/ath/carl9170/tx.c",
"function": "carl9170_tx_release"
},
"digest": {
"length": 988.0,
"function_hash": "29303071095815176447476132777019020239"
},
"id": "CVE-2024-38616-523477ca",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@87586467098281f04fa93e59fe3a516b954bddc4",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "drivers/net/wireless/ath/carl9170/tx.c",
"function": "carl9170_tx_release"
},
"digest": {
"length": 988.0,
"function_hash": "29303071095815176447476132777019020239"
},
"id": "CVE-2024-38616-5874a9a8",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0c38c9c460bb8ce8d6f6cf316e0d71a70983ec83",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "drivers/net/wireless/ath/carl9170/tx.c",
"function": "carl9170_tx_release"
},
"digest": {
"length": 988.0,
"function_hash": "29303071095815176447476132777019020239"
},
"id": "CVE-2024-38616-62a11b89",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@042a39bb8e0812466327a5102606e88a5a4f8c02",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "drivers/net/wireless/ath/carl9170/tx.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"124628318421551258884298867421073978311",
"66370237567335848712982390456208166421",
"27036052421335726930994061846184718164",
"239832613858361081149133953984030964822"
]
},
"id": "CVE-2024-38616-6b36c2e5",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0c38c9c460bb8ce8d6f6cf316e0d71a70983ec83",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "drivers/net/wireless/ath/carl9170/tx.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"124628318421551258884298867421073978311",
"66370237567335848712982390456208166421",
"27036052421335726930994061846184718164",
"239832613858361081149133953984030964822"
]
},
"id": "CVE-2024-38616-84f9ed25",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@87586467098281f04fa93e59fe3a516b954bddc4",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "drivers/net/wireless/ath/carl9170/tx.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"124628318421551258884298867421073978311",
"66370237567335848712982390456208166421",
"27036052421335726930994061846184718164",
"239832613858361081149133953984030964822"
]
},
"id": "CVE-2024-38616-98c4d33a",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@13857683126e8a6492af73c74d702835f7a2175b",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "drivers/net/wireless/ath/carl9170/tx.c",
"function": "carl9170_tx_release"
},
"digest": {
"length": 988.0,
"function_hash": "29303071095815176447476132777019020239"
},
"id": "CVE-2024-38616-9b50ab47",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@13857683126e8a6492af73c74d702835f7a2175b",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "drivers/net/wireless/ath/carl9170/tx.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"124628318421551258884298867421073978311",
"66370237567335848712982390456208166421",
"27036052421335726930994061846184718164",
"239832613858361081149133953984030964822"
]
},
"id": "CVE-2024-38616-bb80e02b",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@066afafc10c9476ee36c47c9062527a17e763901",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "drivers/net/wireless/ath/carl9170/tx.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"124628318421551258884298867421073978311",
"66370237567335848712982390456208166421",
"27036052421335726930994061846184718164",
"239832613858361081149133953984030964822"
]
},
"id": "CVE-2024-38616-dd10ac90",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@042a39bb8e0812466327a5102606e88a5a4f8c02",
"signature_version": "v1"
},
{
"deprecated": false,
"target": {
"file": "drivers/net/wireless/ath/carl9170/tx.c",
"function": "carl9170_tx_release"
},
"digest": {
"length": 988.0,
"function_hash": "29303071095815176447476132777019020239"
},
"id": "CVE-2024-38616-e4454a39",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@066afafc10c9476ee36c47c9062527a17e763901",
"signature_version": "v1"
}
]