[CRIU] [PATCH 3/6] sk-inet: fix error handling

Pavel Emelyanov xemul at parallels.com
Thu Mar 28 07:38:57 EDT 2013


On 03/27/2013 11:51 PM, Andrey Vagin wrote:
> Currently do_dump_one_inet_fd returns ret, but this variable is
> overwritten a few times and it can be zero on error paths.

There's only 1 place. Isn't it better to reset ret to -1 there?

> Use a separate variable for the function exit code. By default it is -1
> and it is set to zero at the end. It's not changed anywere anywhere
> except these two places.
> 
> Signed-off-by: Andrey Vagin <avagin at openvz.org>
> ---
>  sk-inet.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/sk-inet.c b/sk-inet.c
> index 66366ac..d1ef7f1 100644
> --- a/sk-inet.c
> +++ b/sk-inet.c
> @@ -226,7 +226,7 @@ static int do_dump_one_inet_fd(int lfd, u32 id, const struct fd_parms *p, int fa
>  	struct inet_sk_desc *sk;
>  	InetSkEntry ie = INET_SK_ENTRY__INIT;
>  	SkOptsEntry skopts = SK_OPTS_ENTRY__INIT;
> -	int ret = -1;
> +	int ret = -1, err = -1;
>  
>  	sk = (struct inet_sk_desc *)lookup_socket(p->stat.st_ino, family);
>  	if (!sk) {
> @@ -292,17 +292,17 @@ static int do_dump_one_inet_fd(int lfd, u32 id, const struct fd_parms *p, int fa
>  
>  	switch (sk->proto) {
>  	case IPPROTO_TCP:
> -		ret = dump_one_tcp(lfd, sk);
> +		err = dump_one_tcp(lfd, sk);
>  		break;
>  	default:
> -		ret = 0;
> +		err = 0;
>  		break;
>  	}
>  err:
>  	release_skopts(&skopts);
>  	xfree(ie.src_addr);
>  	xfree(ie.dst_addr);
> -	return ret;
> +	return err;
>  }
>  
>  static int dump_one_inet_fd(int lfd, u32 id, const struct fd_parms *p)
> 




More information about the CRIU mailing list