Ver código fonte

kernel: xt_FLOWOFFLOAD: fix use of uninitialized dir variable

The dir variable has been used uninitialized since the port to 5.10, and
somehow this remains undetected by GCC.

Fixes: b10d6044599d ("kernel: add linux 5.10 support")
Signed-off-by: Qingfang Deng <[email protected]>
Qingfang Deng 1 ano atrás
pai
commit
503d26fb24

+ 2 - 2
target/linux/generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch

@@ -609,6 +609,8 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +	if (!nf_ct_is_confirmed(ct))
 +		return XT_CONTINUE;
 +
++	dir = CTINFO2DIR(ctinfo);
++
 +	devs[dir] = xt_out(par);
 +	devs[!dir] = xt_in(par);
 +
@@ -618,8 +620,6 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +	if (test_and_set_bit(IPS_OFFLOAD_BIT, &ct->status))
 +		return XT_CONTINUE;
 +
-+	dir = CTINFO2DIR(ctinfo);
-+
 +	if (xt_flowoffload_route(skb, ct, par, &route, dir, devs) < 0)
 +		goto err_flow_route;
 +

+ 2 - 2
target/linux/generic/hack-6.1/650-netfilter-add-xt_FLOWOFFLOAD-target.patch

@@ -547,6 +547,8 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +	if (!nf_ct_is_confirmed(ct))
 +		return XT_CONTINUE;
 +
++	dir = CTINFO2DIR(ctinfo);
++
 +	devs[dir] = xt_out(par);
 +	devs[!dir] = xt_in(par);
 +
@@ -556,8 +558,6 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +	if (test_and_set_bit(IPS_OFFLOAD_BIT, &ct->status))
 +		return XT_CONTINUE;
 +
-+	dir = CTINFO2DIR(ctinfo);
-+
 +	if (xt_flowoffload_route(skb, ct, par, &route, dir, devs) < 0)
 +		goto err_flow_route;
 +

+ 2 - 2
target/linux/generic/hack-6.6/650-netfilter-add-xt_FLOWOFFLOAD-target.patch

@@ -547,6 +547,8 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +	if (!nf_ct_is_confirmed(ct))
 +		return XT_CONTINUE;
 +
++	dir = CTINFO2DIR(ctinfo);
++
 +	devs[dir] = xt_out(par);
 +	devs[!dir] = xt_in(par);
 +
@@ -556,8 +558,6 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +	if (test_and_set_bit(IPS_OFFLOAD_BIT, &ct->status))
 +		return XT_CONTINUE;
 +
-+	dir = CTINFO2DIR(ctinfo);
-+
 +	if (xt_flowoffload_route(skb, ct, par, &route, dir, devs) < 0)
 +		goto err_flow_route;
 +