From c353f1b5eeeccfdd6d44fef02c63b60ace2dce33 Mon Sep 17 00:00:00 2001 From: Nicholas Guriev Date: Sun, 23 May 2021 14:04:14 +0300 Subject: [PATCH] Check Layer.mExtra and Transform.mExtra before dereferencing Change-Id: I830ddb91a1ab81d3848633512ef1c23b37654883 --- src/lottie/lottieparser.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lottie/lottieparser.cpp b/src/lottie/lottieparser.cpp index 70a132f..3cb3f76 100644 --- a/src/lottie/lottieparser.cpp +++ b/src/lottie/lottieparser.cpp @@ -1060,7 +1060,7 @@ model::Layer *LottieParserImpl::parseLayer() staticFlag &= child->isStatic(); } - if (layer->hasMask()) { + if (layer->hasMask() && layer->mExtra) { for (const auto &mask : layer->mExtra->mMasks) { staticFlag &= mask->isStatic(); } @@ -1560,10 +1560,13 @@ model::Transform *LottieParserImpl::parseTransformObject(bool ddd) } else if (0 == strcmp(key, "hd")) { objT->setHidden(GetBool()); } else if (0 == strcmp(key, "rx")) { + if (!obj->mExtra) return nullptr; parseProperty(obj->mExtra->m3DRx); } else if (0 == strcmp(key, "ry")) { + if (!obj->mExtra) return nullptr; parseProperty(obj->mExtra->m3DRy); } else if (0 == strcmp(key, "rz")) { + if (!obj->mExtra) return nullptr; parseProperty(obj->mExtra->m3DRz); } else { Skip(key); -- 2.34.1