diff --git a/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp b/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp index 50cc2b008..768556a78 100644 --- a/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp +++ b/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp @@ -324,6 +324,12 @@ SkeletonData *SkeletonBinary::readSkeletonData(const unsigned char *binary, cons skeletonData->_skins.add(defaultSkin); } + if (!this->getError().isEmpty()) { + delete input; + delete skeletonData; + return NULL; + } + /* Skins. */ for (size_t i = 0, n = (size_t) readVarint(input, true); i < n; ++i) { Skin *skin = readSkin(input, false, skeletonData, nonessential);