lkml.org 
[lkml]   [2012]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 014/270] netfilter: xt_limit: have r->cost != 0 case work
    Date
    3.5.7u1 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Jan Engelhardt <jengelh@inai.de>

    commit 82e6bfe2fbc4d48852114c4f979137cd5bf1d1a8 upstream.

    Commit v2.6.19-rc1~1272^2~41 tells us that r->cost != 0 can happen when
    a running state is saved to userspace and then reinstated from there.

    Make sure that private xt_limit area is initialized with correct values.
    Otherwise, random matchings due to use of uninitialized memory.

    Signed-off-by: Jan Engelhardt <jengelh@inai.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Acked-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    ---
    net/netfilter/xt_limit.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/net/netfilter/xt_limit.c b/net/netfilter/xt_limit.c
    index 5c22ce8..a4c1e45 100644
    --- a/net/netfilter/xt_limit.c
    +++ b/net/netfilter/xt_limit.c
    @@ -117,11 +117,11 @@ static int limit_mt_check(const struct xt_mtchk_param *par)

    /* For SMP, we only want to use one set of state. */
    r->master = priv;
    + /* User avg in seconds * XT_LIMIT_SCALE: convert to jiffies *
    + 128. */
    + priv->prev = jiffies;
    + priv->credit = user2credits(r->avg * r->burst); /* Credits full. */
    if (r->cost == 0) {
    - /* User avg in seconds * XT_LIMIT_SCALE: convert to jiffies *
    - 128. */
    - priv->prev = jiffies;
    - priv->credit = user2credits(r->avg * r->burst); /* Credits full. */
    r->credit_cap = priv->credit; /* Credits full. */
    r->cost = user2credits(r->avg);
    }
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2012-11-26 19:01    [W:4.044 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site