mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
conn_delete_all_transactions() should be callable in any context, resetting ALL transaction related data. This includes number of active transactions and the transaction pointer in struct connection. So reset conn->trans to NULL in conn_delete_all_transactions() and do the cleanup for each transaction in destroy_transaction(). This avoids triggering the assert() in conn_delete_all_transactions() in case e.g. ignore_connection() was called while an operation inside a transaction was performed, or XS_RESET_WATCHES was called in a transaction. This is XSA-484 / CVE-2026-23557. Reported-by: Andrii Sultanov <andriy.sultanov@vates.tech> Fixes:1f9d04fb02("xenstored: allow guest to shutdown all its watches/transactions") Signed-off-by: Juergen Gross <jgross@suse.com> (cherry picked from commite88031d1fe)