tools/ocaml/xenstored: ignore transaction id for [un]watch

Instead of ignoring the transaction id for XS_WATCH and XS_UNWATCH
commands as it is documented in docs/misc/xenstore.txt, it is tested
for validity today.

Really ignore the transaction id for XS_WATCH and XS_UNWATCH.

This is part of XSA-115.

Signed-off-by: Edwin Török <edvin.torok@citrix.com>
Acked-by: Christian Lindig <christian.lindig@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
Edwin Török authored and Jan Beulich committed 2020-12-15 14:06:38 +01:00
1 parent 0a79a1b1d8
commit 228e5621eb
1 file changed
+8 -1
+8 -1
View File
@@ -498,12 +498,19 @@ let retain_op_in_history ty =
| Xenbus.Xb.Op.Reset_watches
| Xenbus.Xb.Op.Invalid -> false
let maybe_ignore_transaction = function
| Xenbus.Xb.Op.Watch | Xenbus.Xb.Op.Unwatch -> fun tid ->
if tid <> Transaction.none then
debug "Ignoring transaction ID %d for watch/unwatch" tid;
Transaction.none
| _ -> fun x -> x
(**
* Nothrow guarantee.
*)
let process_packet ~store ~cons ~doms ~con ~req =
let ty = req.Packet.ty in
let tid = req.Packet.tid in
let tid = maybe_ignore_transaction ty req.Packet.tid in
let rid = req.Packet.rid in
try
let fct = function_of_type ty in
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.