mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
call_delayed() is currently assuming that conn->in is NULL when handling delayed request. However, the connection is not paused. Therefore new request can be processed and conn->in may be non-NULL if we have only received a partial request. Furthermore, as we overwrite conn->in, the current partial request will not be transferred. This will result to corrupt the connection. Rather than updating conn->in, stash the LU request in lu_status and let each callback for delayed request to update conn->in when necessary. To keep a sane interface, the code to write the "OK" response the LU request is moved in xenstored_core.c. Fixes:c5ca1404b4("tools/xenstore: add support for delaying execution of a xenstore request") Fixes:ed6eebf17d("tools/xenstore: dump the xenstore state for live update") Signed-off-by: Julien Grall <jgrall@amazon.com> Reviewed-by: Juergen Gross <jgross@suse.com>