From: Nicholas Guriev Date: Sun, 23 May 2021 11:04:14 +0000 (+0300) Subject: Check Layer.mExtra and Transform.mExtra before dereferencing X-Git-Tag: submit/tizen/20210621.044901^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c353f1b5eeeccfdd6d44fef02c63b60ace2dce33;p=platform%2Fcore%2Fuifw%2Flottie-player.git Check Layer.mExtra and Transform.mExtra before dereferencing Change-Id: I830ddb91a1ab81d3848633512ef1c23b37654883 --- 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);