Re: [PATCH net-next v2] ipvs: properly dereference pe in ip_vs_add_service

Julian Anastasov <[email protected]>
Newsgroups org.kernel.vger.lvs-devel,org.kernel.vger.netdev,org.kernel.vger.netfilter-devel
Message-ID <[email protected]>
	Hello,

On Thu, 27 Jun 2024, Chen Hanxiao wrote:

> Use pe directly to resolve sparse warning:
> 
>   net/netfilter/ipvs/ip_vs_ctl.c:1471:27: warning: dereference of noderef expression
> 
> Fixes: 39b972231536 ("ipvs: handle connections started by real-servers")
> Signed-off-by: Chen Hanxiao <[email protected]>

	Looks good to me, thanks!

Acked-by: Julian Anastasov <[email protected]>

> ---
> v2:
> 	use pe directly.
> 
>  net/netfilter/ipvs/ip_vs_ctl.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
> index b6d0dcf3a5c3..f4384e147ee1 100644
> --- a/net/netfilter/ipvs/ip_vs_ctl.c
> +++ b/net/netfilter/ipvs/ip_vs_ctl.c
> @@ -1459,18 +1459,18 @@ ip_vs_add_service(struct netns_ipvs *ipvs, struct ip_vs_service_user_kern *u,
>  	if (ret < 0)
>  		goto out_err;
>  
> -	/* Bind the ct retriever */
> -	RCU_INIT_POINTER(svc->pe, pe);
> -	pe = NULL;
> -
>  	/* Update the virtual service counters */
>  	if (svc->port == FTPPORT)
>  		atomic_inc(&ipvs->ftpsvc_counter);
>  	else if (svc->port == 0)
>  		atomic_inc(&ipvs->nullsvc_counter);
> -	if (svc->pe && svc->pe->conn_out)
> +	if (pe && pe->conn_out)
>  		atomic_inc(&ipvs->conn_out_counter);
>  
> +	/* Bind the ct retriever */
> +	RCU_INIT_POINTER(svc->pe, pe);
> +	pe = NULL;
> +
>  	/* Count only IPv4 services for old get/setsockopt interface */
>  	if (svc->af == AF_INET)
>  		ipvs->num_services++;
> -- 
> 2.39.1

Regards

--
Julian Anastasov <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.