]> xenbits.xensource.com Git - pvdrivers/win/xenbus.git/commitdiff
Add missing magic number checks
authorPaul Durrant <paul.durrant@citrix.com>
Tue, 27 Jan 2015 16:35:19 +0000 (16:35 +0000)
committerPaul Durrant <paul.durrant@citrix.com>
Tue, 27 Jan 2015 16:50:48 +0000 (16:50 +0000)
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 <paul.durrant@citrix.com>
src/xenbus/evtchn.c

index dd608bad93def4476624d2d650f1a47f3c347d2c..3360a295d969890466f43235cf1cde98dd8dd79e 100644 (file)
@@ -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) {