From ecd4fb8a70e7e8bb671f5fff7ce442e7bc3debb2 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Fri, 17 Jan 2025 12:02:32 +0900 Subject: [PATCH] lottie/expressions: ++safety Prevent segfault in case of the omitted name json data --- src/loaders/lottie/tvgLottieExpressions.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/loaders/lottie/tvgLottieExpressions.cpp b/src/loaders/lottie/tvgLottieExpressions.cpp index cc4ce3b3..9a5cefe1 100644 --- a/src/loaders/lottie/tvgLottieExpressions.cpp +++ b/src/loaders/lottie/tvgLottieExpressions.cpp @@ -315,9 +315,11 @@ static void _buildLayer(jerry_value_t context, float frameNo, LottieLayer* layer //marker.nearestKey(t) //marker.numKeys - auto name = jerry_string_sz(layer->name); - jerry_object_set_sz(context, EXP_NAME, name); - jerry_value_free(name); + if (layer->name) { + auto name = jerry_string_sz(layer->name); + jerry_object_set_sz(context, EXP_NAME, name); + jerry_value_free(name); + } auto toComp = jerry_function_external(_toComp); jerry_object_set_sz(context, "toComp", toComp); @@ -1276,9 +1278,11 @@ void LottieExpressions::buildComp(LottieComposition* comp, float frameNo, Lottie //bgColor //pixelAspect - auto name = jerry_string((jerry_char_t*)comp->name, strlen(comp->name), JERRY_ENCODING_UTF8); - jerry_object_set_sz(thisComp, EXP_NAME, name); - jerry_value_free(name); + if (comp->name) { + auto name = jerry_string((jerry_char_t*)comp->name, strlen(comp->name), JERRY_ENCODING_UTF8); + jerry_object_set_sz(thisComp, EXP_NAME, name); + jerry_value_free(name); + } }