In case of failure in do_lu_start(), XenStored will first free lu_start
and then try to dereference it.
This will result to a NULL dereference as the destruction callback will
set lu_start to NULL.
The crash can be avoided by freeing lu_start *after* the reply has been
set.
Fixes: af216a99fb4a ("tools/xenstore: add the basic framework for doing the live update")
Signed-off-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
/* We will reach this point only in case of failure. */
out:
- talloc_free(lu_status);
-
send_reply(lu_status->conn, XS_CONTROL, ret, strlen(ret) + 1);
+ talloc_free(lu_status);
return true;
}