ARTEMIS-2260 Prevent a null pointer dereference if unable to allocate memory for the
events member of the control structure. This could also cause the broker
to abruptly shutdown.
diff --git a/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c b/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c
index 59ddac8..e70edee 100644
--- a/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c
+++ b/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c
@@ -421,6 +421,12 @@
     }
 
     struct io_event * events = (struct io_event *)malloc(sizeof(struct io_event) * (size_t)queueSize);
+    if (events == NULL) {
+        free(theControl);
+        free(libaioContext);
+        throwRuntimeExceptionErrorNo(env, "Can't initialize mutext (not enough memory for the events member): ", res);
+        return NULL;
+    }
 
     theControl->ioContext = libaioContext;
     theControl->events = events;