diff --git a/src/Services/EventActionService.cpp b/src/Services/EventActionService.cpp
index e2a403836d3862fce60caa09c3c49acde7d043ee..63f3e9f1944ddfd80c40889c8741615b8fecde13 100644
--- a/src/Services/EventActionService.cpp
+++ b/src/Services/EventActionService.cpp
@@ -25,9 +25,13 @@ void EventActionService::addEventActionDefinitions(Message message) {
 			eventActionDefinitionArray[index].eventDefinitionID = message.readEnum16();
 			// Tests pass with message.dataSize - 3, message.dataSize - 4, but not
 			// message.dataSize - 5
-			message.readString(data, message.dataSize);
-			eventActionDefinitionArray[index].request = String<ECSS_EVENT_SERVICE_STRING_SIZE>(
-				data);
+			if (message.dataSize - 4 > ECSS_EVENT_SERVICE_STRING_SIZE) { // Should this be >= ?
+				ErrorHandler::reportInternalError(ErrorHandler::InternalErrorType::MessageTooLarge);
+			} else {
+				message.readString(data, message.dataSize);
+				eventActionDefinitionArray[index].request = String<ECSS_EVENT_SERVICE_STRING_SIZE>(
+					data);
+			}
 		}
 	}
 }