[PATCH] fixed #1980
authorjeanlf <jeanlf@gpac.io>
Mon, 13 Dec 2021 13:21:50 +0000 (14:21 +0100)
committerAron Xu <aron@debian.org>
Tue, 23 May 2023 11:53:25 +0000 (12:53 +0100)
Gbp-Pq: Name CVE-2021-45262.patch

include/gpac/svg_types.h
src/laser/lsr_dec.c
src/scenegraph/svg_types.c
src/scenegraph/vrml_tools.c

index cd83e59dc56b7d288847cda1660e0cabd3222dcd..51c9b67129a6ffff52b199c274eeee6fa0d88910 100644 (file)
@@ -176,6 +176,9 @@ enum {
        LASeR_Size_datatype,
 
        SVG_Matrix2D_datatype,
+
+       /*internal type for node list*/
+       SVG_NodeList_datatype
 };
 
 //! @cond Doxygen_Suppress
index d0ae2622608cb85b6e5222c679c8d45b1c312b50..79ccb187b612ae93c828fe59277fe148db1baea0 100644 (file)
@@ -5252,6 +5252,7 @@ static GF_Err lsr_read_add_replace_insert(GF_LASeRCodec *lsr, GF_List *com_list,
                                gf_node_register(field->new_node, NULL);
                                if (att_type>=0) field->fieldIndex = gf_lsr_anim_type_to_attribute(att_type);
                        } else {
+                               field->fieldType = SVG_NodeList_datatype;
                                field->field_ptr = &field->node_list;
                                while (count) {
                                        GF_Node *new_node = lsr_read_update_content_model(lsr, (SVG_Element *) n);
index 1975287b10909aed66949b2d3b250e33a0b4c3ea..2d2fc3cee376149d489bb68141823dff74d06905 100644 (file)
@@ -487,6 +487,8 @@ void gf_svg_delete_attribute_value(u32 type, void *value, GF_SceneGraph *sg)
                if (*(SVG_String *)value) gf_free(*(SVG_String *)value);
                gf_free(value);
                break;
+       case SVG_NodeList_datatype:
+               break;
        case SMIL_RepeatCount_datatype:
        case SMIL_Duration_datatype:
        case SVG_Length_datatype:
index bd299ccb13d23da55386b5ca12212efe0cd730b5..26bec0ead07867a6ae22200ac2b891f7bc8da620 100644 (file)
@@ -1133,7 +1133,7 @@ GF_Err gf_sg_vrml_mf_reset(void *mf, u32 FieldType)
                gf_sg_mfurl_del( * ((MFURL *) mf));
                break;
        case GF_SG_VRML_MFSCRIPT:
-               gf_sg_mfscript_del( * ((MFScript *) mf));
+               gf_sg_mfscript_del( * ((MFScript *) mf));       
                break;
        default:
                if (mffield->array) gf_free(mffield->array);