From 6dafedb6af5b7d28b35664c3e039fab42eda9439 Mon Sep 17 00:00:00 2001 From: Otavio Rodolfo Piske Date: Tue, 29 Jan 2019 14:37:08 +0100 Subject: [PATCH] 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. --- .../c/org_apache_activemq_artemis_jlibaio_LibaioContext.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c b/artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c index f8a04e3cf2..9e10c9d3d8 100644 --- a/artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c +++ b/artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c @@ -421,6 +421,12 @@ JNIEXPORT jobject JNICALL Java_org_apache_activemq_artemis_jlibaio_LibaioContext } 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;