Re: [PATCH 1/2] tcp: Fix out of bounds access to tcpm_vals
From: Alexander Duyck <hidden>
Date: 2012-07-12 01:46:57
On 7/11/2012 5:32 PM, David Miller wrote:
From: Alexander Duyck<redacted> Date: Wed, 11 Jul 2012 17:18:04 -0700quoted
The recent patch "tcp: Maintain dynamic metrics in local cache." introduced an out of bounds access due to what appears to be a typo. I believe this change should resolve the issue by replacing the access to RTAX_CWND with TCP_METRIC_CWND. Signed-off-by: Alexander Duyck<redacted>Applied, thanks a lot. How did you spot this, did you get a compiler warning? I ask because while working on this, I at one point put the tcp timestamp members after the metrics array in the tcp_metrics_bucket struct. And I got a warning from gcc about an array bounds violation that I could not figure out. I am pretty certain this bug here is what it was warning about. And the problem is that if you put the array at the end gcc doesn't warn in order to handle things similar to what people use zero length arrays for.
It came up as a compiler warning. I suspect it may have something to do with the optimizations I had turned on since it complained that the issue was in tcp_update_metrics but then reported it on the one line in tcp_metric_set. Thanks, Alex