[LTP] [PATCH] tirpc_clnt_destroy: Determine the return value of clnt_create()

Hanxiao Chen (Fujitsu) chenhx.fnst@fujitsu.com
Fri Sep 27 04:12:05 CEST 2024



> -----邮件原件-----
> 发件人: Ma Xinjian <maxj.fnst@fujitsu.com>
> 发送时间: 2024年9月26日 12:14
> 收件人: ltp@lists.linux.it; chuck.lever@oracle.com; Chen, Hanxiao 
> <chenhx.fnst@fujitsu.com>
> 抄送: Ma, Xinjian <maxj.fnst@fujitsu.com>
> 主题: [PATCH] tirpc_clnt_destroy: Determine the return value of clnt_create()
> 
> Determine the return value of clnt_create() to avoid segmentation fault
> when executing clnt_destroy() when the return value of create is NULL.
> 
> Signed-off-by: Ma Xinjian <maxj.fnst@fujitsu.com>
> ---
>  .../tirpc/tirpc_toplevel_clnt_destroy/tirpc_clnt_destroy.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git
> a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_toplevel_cl
> nt_destroy/tirpc_clnt_destroy.c
> b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_toplevel_cl
> nt_destroy/tirpc_clnt_destroy.c
> index 939ff3e4a..bb9a47503 100644
> ---
> a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_toplevel_cl
> nt_destroy/tirpc_clnt_destroy.c
> +++
> b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_toplevel_cl
> nt_destroy/tirpc_clnt_destroy.c
> @@ -58,6 +58,13 @@ int main(int argn, char *argc[])
>  	//first create client
>  	clnt = clnt_create(argc[1], progNum, VERSNUM, nettype);
> 
> +	if (clnt == NULL) {
> +		clnt_pcreateerror("err");
> +		printf("%d\n", rpc_createerr.cf_stat);
> +
> +		return 1;
> +	}
> +
>  	//then call destroy macro
>  	clnt_destroy(clnt);
> 
With the patch above, no segfault found

And logs look better:

rpc_test 1 TINFO: 192.168.122.147/24 -- 192.168.122.148/24
rpc_test 1 TINFO: fd00::1/64 -- fd00::2/64
rpc_test 1 TINFO: timeout per run is 0h 10m 0s
rpc_test 1 TINFO: check registered RPC with rpcinfo
rpc_test 1 TINFO: registered RPC:
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
rpc_test 1 TINFO: using libtirpc: yes
rpc_test 1 TFAIL: tirpc_clnt_destroy 192.168.122.147 536875000 failed unexpectedly
12
err: RPC: Remote system error - No route to host



Tested-by: Chen Hanxiao <chenhx.fnst@fujitsu.com>

Regards,
- Chen


More information about the ltp mailing list