tcp: Fix out of bounds access to tcpm_vals
authorAlexander Duyck <alexander.h.duyck@intel.com>
Thu, 12 Jul 2012 00:18:04 +0000 (17:18 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Jul 2012 00:30:41 +0000 (17:30 -0700)
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 <alexander.h.duyck@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_metrics.c

index 1fd83d3118fea131c1ed3d694408979adc406f10..5a38a2d5a95ba41dc67aa82aefaf5f2dcddc88d9 100644 (file)
@@ -412,7 +412,7 @@ void tcp_update_metrics(struct sock *sk)
                                       max(tp->snd_cwnd >> 1, tp->snd_ssthresh));
                if (!tcp_metric_locked(tm, TCP_METRIC_CWND)) {
                        val = tcp_metric_get(tm, TCP_METRIC_CWND);
-                       tcp_metric_set(tm, RTAX_CWND, (val + tp->snd_cwnd) >> 1);
+                       tcp_metric_set(tm, TCP_METRIC_CWND, (val + tp->snd_cwnd) >> 1);
                }
        } else {
                /* Else slow start did not finish, cwnd is non-sense,