On Thu, Apr 06, 2017 at 07:19:34PM +0800, gfree.w...@foxmail.com wrote:
> From: Gao Feng <f...@ikuai8.com>
> 
> When nf_ct_timeout_ext_add failed in xt_ct_set_timeout, it should
> free the timeout refcnt.
> 
> Now goto the err_put_timeout error handler instead of going ahead.
> 
> Signed-off-by: Gao Feng <f...@ikuai8.com>
> ---
>  v2: Keep the ret = -ENOMEM, per Gao Feng
>  v1: initial version
> 
>  net/netfilter/xt_CT.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/net/netfilter/xt_CT.c b/net/netfilter/xt_CT.c
> index b008db0..a1783b6 100644
> --- a/net/netfilter/xt_CT.c
> +++ b/net/netfilter/xt_CT.c
> @@ -167,8 +167,10 @@ static void __xt_ct_tg_timeout_put(struct ctnl_timeout 
> *timeout)
>               goto err_put_timeout;
>       }
>       timeout_ext = nf_ct_timeout_ext_add(ct, timeout, GFP_ATOMIC);
> -     if (timeout_ext == NULL)
> +     if (!timeout_ext) {
>               ret = -ENOMEM;
> +             goto err_put_timeout;
> +     }

This also needs to be fixed, just a few line after this:

        timeout_ext = nf_ct_timeout_ext_add(ct, timeout, GFP_ATOMIC);
        if (timeout_ext == NULL)
                ret = -ENOMEM;
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to