From: Paul Durrant Date: Tue, 27 Jan 2015 16:35:19 +0000 (+0000) Subject: Add missing magic number checks X-Git-Tag: 8.1.0-rc1~65 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=134f2e6030d56cc9270673089cd71c27f14dcdfd;p=pvdrivers%2Fwin%2Fxenbus.git Add missing magic number checks We should sanity check the magic number in an event channel whenever one is passed to an EVTCHN method or when one is recovered from a list. Signed-off-by: Paul Durrant --- diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c index dd608ba..3360a29 100644 --- a/src/xenbus/evtchn.c +++ b/src/xenbus/evtchn.c @@ -644,6 +644,8 @@ EvtchnBind( KIRQL Irql; NTSTATUS status; + ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC); + status = STATUS_INVALID_PARAMETER; if (Cpu >= (ULONG)KeNumberProcessors) goto fail1; @@ -989,6 +991,8 @@ EvtchnSuspendCallbackEarly( Channel = CONTAINING_RECORD(ListEntry, XENBUS_EVTCHN_CHANNEL, ListEntry); + ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC); + if (Channel->Active) { ULONG LocalPort = Channel->LocalPort; NTSTATUS status; @@ -1044,6 +1048,8 @@ EvtchnDebugCallback( Channel = CONTAINING_RECORD(ListEntry, XENBUS_EVTCHN_CHANNEL, ListEntry); + ASSERT3U(Channel->Magic, ==, XENBUS_EVTCHN_CHANNEL_MAGIC); + ModuleLookup((ULONG_PTR)Channel->Caller, &Name, &Offset); if (Name != NULL) {