LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] net: stmmac: Avoid VLA usage
@ 2018-05-01 21:01 Kees Cook
2018-05-02 8:54 ` Jose Abreu
2018-05-02 15:11 ` David Miller
0 siblings, 2 replies; 6+ messages in thread
From: Kees Cook @ 2018-05-01 21:01 UTC (permalink / raw)
To: Giuseppe Cavallaro, Alexandre Torgue; +Cc: linux-kernel, netdev, Jose Abreu
In the quest to remove all stack VLAs from the kernel[1], this switches
the "status" stack buffer to use the existing small (8) upper bound on
how many queues can be checked for DMA, and adds a sanity-check just to
make sure it doesn't operate under pathological conditions.
[1] http://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com
Signed-off-by: Kees Cook <keescook@chromium.org>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index b65e2d144698..19bdc23fa314 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -2045,7 +2045,11 @@ static void stmmac_dma_interrupt(struct stmmac_priv *priv)
tx_channel_count : rx_channel_count;
u32 chan;
bool poll_scheduled = false;
- int status[channels_to_check];
+ int status[max_t(u32, MTL_MAX_TX_QUEUES, MTL_MAX_RX_QUEUES)];
+
+ /* Make sure we never check beyond our status buffer. */
+ if (WARN_ON_ONCE(channels_to_check > ARRAY_SIZE(status)))
+ channels_to_check = ARRAY_SIZE(status);
/* Each DMA channel can be used for rx and tx simultaneously, yet
* napi_struct is embedded in struct stmmac_rx_queue rather than in a
--
2.7.4
--
Kees Cook
Pixel Security
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] net: stmmac: Avoid VLA usage
2018-05-01 21:01 [PATCH] net: stmmac: Avoid VLA usage Kees Cook
@ 2018-05-02 8:54 ` Jose Abreu
2018-05-02 12:36 ` Kees Cook
2018-05-02 15:11 ` David Miller
1 sibling, 1 reply; 6+ messages in thread
From: Jose Abreu @ 2018-05-02 8:54 UTC (permalink / raw)
To: Kees Cook, Giuseppe Cavallaro, Alexandre Torgue
Cc: linux-kernel, netdev, Jose Abreu
Hi Kees,
On 01-05-2018 22:01, Kees Cook wrote:
> In the quest to remove all stack VLAs from the kernel[1], this switches
> the "status" stack buffer to use the existing small (8) upper bound on
> how many queues can be checked for DMA, and adds a sanity-check just to
> make sure it doesn't operate under pathological conditions.
>
> [1] https://urldefense.proofpoint.com/v2/url?u=http-3A__lkml.kernel.org_r_CA-2B55aFzCG-2DzNmZwX4A2FQpadafLfEzK6CC-3DqPXydAacU1RqZWA-40mail.gmail.com&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=WHDsc6kcWAl4i96Vm5hJ_19IJiuxx_p_Rzo2g-uHDKw&m=TBD6a7UY2VbpPmV9LOW_eHAyg8uPq1ZPDhq93VROTVE&s=4fvOST1HhWmZ4lThQe-dHCJYEXNOwey00BCXOWm8tKo&e=
>
> Signed-off-by: Kees Cook <keescook@chromium.org>
>
I rather prefer the variables declaration in reverse-tree order,
but thats just a minor pick.
Reviewed-by: Jose Abreu <joabreu@synopsys.com>
Thanks and Best Regards,
Jose Miguel Abreu
PS: Is VLA warning switch in gcc already active? Because I didn't
see this warning in my builds.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] net: stmmac: Avoid VLA usage
2018-05-02 8:54 ` Jose Abreu
@ 2018-05-02 12:36 ` Kees Cook
2018-05-02 14:07 ` Jose Abreu
0 siblings, 1 reply; 6+ messages in thread
From: Kees Cook @ 2018-05-02 12:36 UTC (permalink / raw)
To: Jose Abreu
Cc: Giuseppe Cavallaro, Alexandre Torgue, LKML, Network Development
On Wed, May 2, 2018 at 1:54 AM, Jose Abreu <Jose.Abreu@synopsys.com> wrote:
> Hi Kees,
>
> On 01-05-2018 22:01, Kees Cook wrote:
>> In the quest to remove all stack VLAs from the kernel[1], this switches
>> the "status" stack buffer to use the existing small (8) upper bound on
>> how many queues can be checked for DMA, and adds a sanity-check just to
>> make sure it doesn't operate under pathological conditions.
>>
>> [1] https://urldefense.proofpoint.com/v2/url?u=http-3A__lkml.kernel.org_r_CA-2B55aFzCG-2DzNmZwX4A2FQpadafLfEzK6CC-3DqPXydAacU1RqZWA-40mail.gmail.com&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=WHDsc6kcWAl4i96Vm5hJ_19IJiuxx_p_Rzo2g-uHDKw&m=TBD6a7UY2VbpPmV9LOW_eHAyg8uPq1ZPDhq93VROTVE&s=4fvOST1HhWmZ4lThQe-dHCJYEXNOwey00BCXOWm8tKo&e=
>>
>> Signed-off-by: Kees Cook <keescook@chromium.org>
>>
>
> I rather prefer the variables declaration in reverse-tree order,
> but thats just a minor pick.
I can explicitly reorder the other variables, if you want?
> Reviewed-by: Jose Abreu <joabreu@synopsys.com>
Thanks!
> PS: Is VLA warning switch in gcc already active? Because I didn't
> see this warning in my builds.
It is not. A bunch of people have been building with KCFLAGS=-Wvla to
find the VLAs and sending patches. Once we get rid of them all, we can
add the flag to the top-level Makefile.
-Kees
--
Kees Cook
Pixel Security
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] net: stmmac: Avoid VLA usage
2018-05-02 12:36 ` Kees Cook
@ 2018-05-02 14:07 ` Jose Abreu
2018-05-02 14:22 ` Alexandre Torgue
0 siblings, 1 reply; 6+ messages in thread
From: Jose Abreu @ 2018-05-02 14:07 UTC (permalink / raw)
To: Kees Cook, Jose Abreu
Cc: Giuseppe Cavallaro, Alexandre Torgue, LKML, Network Development
On 02-05-2018 13:36, Kees Cook wrote:
> On Wed, May 2, 2018 at 1:54 AM, Jose Abreu <Jose.Abreu@synopsys.com> wrote:
>> Hi Kees,
>>
>> On 01-05-2018 22:01, Kees Cook wrote:
>>> In the quest to remove all stack VLAs from the kernel[1], this switches
>>> the "status" stack buffer to use the existing small (8) upper bound on
>>> how many queues can be checked for DMA, and adds a sanity-check just to
>>> make sure it doesn't operate under pathological conditions.
>>>
>>> [1] https://urldefense.proofpoint.com/v2/url?u=http-3A__lkml.kernel.org_r_CA-2B55aFzCG-2DzNmZwX4A2FQpadafLfEzK6CC-3DqPXydAacU1RqZWA-40mail.gmail.com&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=WHDsc6kcWAl4i96Vm5hJ_19IJiuxx_p_Rzo2g-uHDKw&m=TBD6a7UY2VbpPmV9LOW_eHAyg8uPq1ZPDhq93VROTVE&s=4fvOST1HhWmZ4lThQe-dHCJYEXNOwey00BCXOWm8tKo&e=
>>>
>>> Signed-off-by: Kees Cook <keescook@chromium.org>
>>>
>> I rather prefer the variables declaration in reverse-tree order,
>> but thats just a minor pick.
> I can explicitly reorder the other variables, if you want?
No need by me, unless Giuseppe or Alexandre prefer that. Thanks!
Best Regards,
Jose Miguel Abreu
>
>> Reviewed-by: Jose Abreu <joabreu@synopsys.com>
> Thanks!
>
>> PS: Is VLA warning switch in gcc already active? Because I didn't
>> see this warning in my builds.
> It is not. A bunch of people have been building with KCFLAGS=-Wvla to
> find the VLAs and sending patches. Once we get rid of them all, we can
> add the flag to the top-level Makefile.
>
> -Kees
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] net: stmmac: Avoid VLA usage
2018-05-02 14:07 ` Jose Abreu
@ 2018-05-02 14:22 ` Alexandre Torgue
0 siblings, 0 replies; 6+ messages in thread
From: Alexandre Torgue @ 2018-05-02 14:22 UTC (permalink / raw)
To: Jose Abreu, Kees Cook; +Cc: Giuseppe Cavallaro, LKML, Network Development
On 05/02/2018 04:07 PM, Jose Abreu wrote:
>
>
> On 02-05-2018 13:36, Kees Cook wrote:
>> On Wed, May 2, 2018 at 1:54 AM, Jose Abreu <Jose.Abreu@synopsys.com> wrote:
>>> Hi Kees,
>>>
>>> On 01-05-2018 22:01, Kees Cook wrote:
>>>> In the quest to remove all stack VLAs from the kernel[1], this switches
>>>> the "status" stack buffer to use the existing small (8) upper bound on
>>>> how many queues can be checked for DMA, and adds a sanity-check just to
>>>> make sure it doesn't operate under pathological conditions.
>>>>
>>>> [1] https://urldefense.proofpoint.com/v2/url?u=http-3A__lkml.kernel.org_r_CA-2B55aFzCG-2DzNmZwX4A2FQpadafLfEzK6CC-3DqPXydAacU1RqZWA-40mail.gmail.com&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=WHDsc6kcWAl4i96Vm5hJ_19IJiuxx_p_Rzo2g-uHDKw&m=TBD6a7UY2VbpPmV9LOW_eHAyg8uPq1ZPDhq93VROTVE&s=4fvOST1HhWmZ4lThQe-dHCJYEXNOwey00BCXOWm8tKo&e=
>>>>
>>>> Signed-off-by: Kees Cook <keescook@chromium.org>
>>>>
>>> I rather prefer the variables declaration in reverse-tree order,
>>> but thats just a minor pick.
>> I can explicitly reorder the other variables, if you want?
>
> No need by me, unless Giuseppe or Alexandre prefer that. Thanks!
No need.
>
> Best Regards,
> Jose Miguel Abreu
>
>>
>>> Reviewed-by: Jose Abreu <joabreu@synopsys.com>
>> Thanks!
>>
>>> PS: Is VLA warning switch in gcc already active? Because I didn't
>>> see this warning in my builds.
>> It is not. A bunch of people have been building with KCFLAGS=-Wvla to
>> find the VLAs and sending patches. Once we get rid of them all, we can
>> add the flag to the top-level Makefile.
>>
>> -Kees
>>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] net: stmmac: Avoid VLA usage
2018-05-01 21:01 [PATCH] net: stmmac: Avoid VLA usage Kees Cook
2018-05-02 8:54 ` Jose Abreu
@ 2018-05-02 15:11 ` David Miller
1 sibling, 0 replies; 6+ messages in thread
From: David Miller @ 2018-05-02 15:11 UTC (permalink / raw)
To: keescook
Cc: peppe.cavallaro, alexandre.torgue, linux-kernel, netdev, Jose.Abreu
From: Kees Cook <keescook@chromium.org>
Date: Tue, 1 May 2018 14:01:30 -0700
> In the quest to remove all stack VLAs from the kernel[1], this switches
> the "status" stack buffer to use the existing small (8) upper bound on
> how many queues can be checked for DMA, and adds a sanity-check just to
> make sure it doesn't operate under pathological conditions.
>
> [1] http://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com
>
> Signed-off-by: Kees Cook <keescook@chromium.org>
Applied to net-next, thank you.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-05-02 15:11 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-01 21:01 [PATCH] net: stmmac: Avoid VLA usage Kees Cook
2018-05-02 8:54 ` Jose Abreu
2018-05-02 12:36 ` Kees Cook
2018-05-02 14:07 ` Jose Abreu
2018-05-02 14:22 ` Alexandre Torgue
2018-05-02 15:11 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).