[CRIU] [PATCH 5/7] zdtm/test: add infop to waitid()

Tycho Andersen tycho.andersen at canonical.com
Mon Jan 9 22:27:20 PST 2017


On Mon, Jan 09, 2017 at 08:19:10PM +0300, Dmitry Safonov wrote:
> The man page says, it's not optional argument:
>   The application shall ensure that the infop argument
>   points to a siginfo_t structure.
> 
> Fixes:
> Test output: ================================
> 17:40:26.128:     5: FAIL: helper_zombie_child.c:33: waitid (errno = 14 (Bad address))
> 17:40:26.128:     4: FAIL: helper_zombie_child.c:78: read (errno = 2 (No such file or directory))
> 17:40:26.129:     3: ERR: test.c:229: Test exited unexpectedly with code 1
> 
> Test output: ================================
> 15:30:49.021:    30: ERR: sigpending.c:213: waitid (errno = 14 (Bad address))
> 15:30:49.021:    29: ERR: test.c:229: Test exited unexpectedly with code 1
> 
> and etc.
> 
> Signed-off-by: Dmitry Safonov <dsafonov at virtuozzo.com>

Acked-by: Tycho Andersen <tycho.andersen at canonical.com>

> ---
>  test/zdtm/static/helper_zombie_child.c | 3 ++-
>  test/zdtm/static/sigpending.c          | 3 ++-
>  test/zdtm/static/stopped.c             | 3 ++-
>  3 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/test/zdtm/static/helper_zombie_child.c b/test/zdtm/static/helper_zombie_child.c
> index 18227189bdf9..1e6b4bda7117 100644
> --- a/test/zdtm/static/helper_zombie_child.c
> +++ b/test/zdtm/static/helper_zombie_child.c
> @@ -16,6 +16,7 @@ const char *test_author	= "Tycho Andersen <tycho.andersen at canonical.com>";
>  
>  void setsid_and_fork(int sk)
>  {
> +	siginfo_t infop;
>  	pid_t zombie;
>  
>  	setsid();
> @@ -29,7 +30,7 @@ void setsid_and_fork(int sk)
>  	if (zombie == 0)
>  		exit(0);
>  
> -	if (waitid(P_PID, zombie, NULL, WNOWAIT | WEXITED) < 0) {
> +	if (waitid(P_PID, zombie, &infop, WNOWAIT | WEXITED) < 0) {
>  		fail("waitid");
>  		exit(1);
>  	}
> diff --git a/test/zdtm/static/sigpending.c b/test/zdtm/static/sigpending.c
> index 2a4abfba024c..d1dbd251daed 100644
> --- a/test/zdtm/static/sigpending.c
> +++ b/test/zdtm/static/sigpending.c
> @@ -170,6 +170,7 @@ int main(int argc, char ** argv)
>  	sigset_t blockmask, oldset, newset;
>  	struct sigaction act;
>  	pthread_t pthrd;
> +	siginfo_t infop;
>  	int i;
>  
>  	memset(&oldset, 0, sizeof(oldset));
> @@ -209,7 +210,7 @@ int main(int argc, char ** argv)
>  
>  	if(child == 0)
>  		return 5; /* SIGCHLD */
> -	if (waitid(P_PID, child, NULL, WNOWAIT | WEXITED)) {
> +	if (waitid(P_PID, child, &infop, WNOWAIT | WEXITED)) {
>  		pr_perror("waitid");
>  		return 1;
>  	}
> diff --git a/test/zdtm/static/stopped.c b/test/zdtm/static/stopped.c
> index af5780793dd2..9bb849363aaf 100644
> --- a/test/zdtm/static/stopped.c
> +++ b/test/zdtm/static/stopped.c
> @@ -13,6 +13,7 @@ const char *test_author	= "Andrew Vagin <avagin at parallels.com>";
>  int main(int argc, char **argv)
>  {
>  	pid_t pid;
> +	siginfo_t infop;
>  	int p[2], ret, status;
>  
>  	test_init(argc, argv);
> @@ -40,7 +41,7 @@ int main(int argc, char **argv)
>  	close(p[0]);
>  
>  	kill(pid, SIGSTOP);
> -	if (waitid(P_PID, pid, NULL, WNOWAIT | WSTOPPED) < 0) {
> +	if (waitid(P_PID, pid, &infop, WNOWAIT | WSTOPPED) < 0) {
>  		pr_perror("waitid");
>  		return 1;
>  	}
> -- 
> 2.11.0
> 
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu


More information about the CRIU mailing list