[CRIU] [PATCH] criu: don't abort criu in lookup_create_item()

Andrei Vagin avagin at virtuozzo.com
Tue Jul 25 01:37:56 MSK 2017


Applied
On Tue, Jul 18, 2017 at 01:19:35AM +0300, Andrei Vagin wrote:
> From: Andrei Vagin <avagin at virtuozzo.com>
> 
> Currently lookup_create_item() calls BUG_ON(), if it meets a thread.
> We don't expect to meet a thread there, but if images contain incorrect
> data, we can be in this situation in open_remap_dead_process().
> 
> (gdb) bt
> 
> Signed-off-by: Andrei Vagin <avagin at virtuozzo.com>
> ---
>  criu/pstree.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/criu/pstree.c b/criu/pstree.c
> index 9ae1912..3fca758 100644
> --- a/criu/pstree.c
> +++ b/criu/pstree.c
> @@ -612,7 +612,11 @@ struct pstree_item *lookup_create_item(pid_t *pid, int level, uint32_t ns_id)
>  	node = lookup_create_pid(pid, level, NULL, ns_id);
>  	if (!node)
>  		return NULL;
> -	BUG_ON(node->state == TASK_THREAD);
> +
> +	if (node->state == TASK_THREAD) {
> +		pr_err("The %d node is used for a thread\n", *pid);
> +		return NULL;
> +	}
>  
>  	return node->item;
>  }
> -- 
> 2.9.4
> 


More information about the CRIU mailing list