From fbc613cf9452d90ad01c7d2115100b8f3bd37903 Mon Sep 17 00:00:00 2001 From: monsieurgustav Date: Wed, 2 Mar 2016 00:01:35 +0100 Subject: [PATCH] bugfix: SendOsc crash if no address --- .../OSC/Private/Common/OscFunctionLibrary.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/OSC/Source/OSC/Private/Common/OscFunctionLibrary.cpp b/OSC/Source/OSC/Private/Common/OscFunctionLibrary.cpp index 2fae940..3d070c0 100644 --- a/OSC/Source/OSC/Private/Common/OscFunctionLibrary.cpp +++ b/OSC/Source/OSC/Private/Common/OscFunctionLibrary.cpp @@ -137,12 +137,25 @@ FOscDataElemStruct UOscFunctionLibrary::FromString(FName input) void UOscFunctionLibrary::SendOsc(FName Address, const TArray & Data, int32 TargetIndex) { + if(!Address.IsValid()) + { + UE_LOG(LogOSC, Error, TEXT("Empty OSC address")); + return; + } + if(Address.GetDisplayNameEntry()->IsWide()) { const auto tmp = Address.GetPlainNameString(); UE_LOG(LogOSC, Error, TEXT("Invalid OSC address \"%s\": ASCII only"), *tmp); return; } + + if(Address.GetPlainANSIString()[0] != '/') + { + const auto tmp = Address.GetPlainNameString(); + UE_LOG(LogOSC, Error, TEXT("Invalid OSC address \"%s\": must start with '/'"), *tmp); + return; + } static_assert(sizeof(uint8) == sizeof(char), "Cannot cast uint8 to char"); uint8 buffer[1024];