From: Edwin Török Date: Fri, 15 Jan 2021 18:23:10 +0000 (+0000) Subject: tools/ocaml/libs/xb: Do not crash after xenbus is unmapped X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=f66542f5d2217f3868d78ff64d11a2a02674fed9;p=xen.git tools/ocaml/libs/xb: Do not crash after xenbus is unmapped Xenmmap.unmap sets the address to MAP_FAILED in xenmmap_stubs.c. If due to a bug there were still references to the Xenbus and we attempt to use it then we crash. Raise an exception instead of crashing. Signed-off-by: Edwin Török Acked-by: Andrew Cooper (cherry picked from commit 5e317896342d553f0b55f72948bbf93a0f1147d3) --- diff --git a/tools/ocaml/libs/xb/xs_ring_stubs.c b/tools/ocaml/libs/xb/xs_ring_stubs.c index 7537a23949..7a91fdee75 100644 --- a/tools/ocaml/libs/xb/xs_ring_stubs.c +++ b/tools/ocaml/libs/xb/xs_ring_stubs.c @@ -32,6 +32,7 @@ #include #include +#include #include "mmap_stubs.h" #define GET_C_STRUCT(a) ((struct mmap_interface *) a) @@ -166,6 +167,8 @@ CAMLprim value ml_interface_set_server_features(value interface, value v) { CAMLparam2(interface, v); struct xenstore_domain_interface *intf = GET_C_STRUCT(interface)->addr; + if (intf == (void*)MAP_FAILED) + caml_failwith("Interface closed"); intf->server_features = Int_val(v);