Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Random crashes/leaks, when trying to convert invalid lottie files to gifs #2072

Open
qarmin opened this issue Mar 19, 2024 · 5 comments
Open
Labels
bug Something isn't working lottie Lottie animation showstopper Regression bugs / Critical errors
Milestone

Comments

@qarmin
Copy link
Contributor

qarmin commented Mar 19, 2024

Command (lottie compiled with ubsan + asan)

lottie2gif a.json -r 300x300

files with info about problems - BrokenLottie.7z.zip - (this is 7zip archive, but named zip, to be able to post it here)

example problems

../src/loaders/lottie/tvgLottieModel.h:384:43: runtime error: member access within null pointer of type 'struct Array'
AddressSanitizer:DEADLYSIGNAL
=================================================================
==157472==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000008 (pc 0x7f4ba6541609 bp 0x7ffeea4efa10 sp 0x7ffeea4ef8d0 T0)
==157472==The signal is caused by a READ memory access.
==157472==Hint: address points to the zero page.
    #0 0x7f4ba6541609 in LottieGradient::populate(ColorStop&) ../src/loaders/lottie/tvgLottieModel.h:384
    #1 0x7f4ba6544436 in LottieGradient::prepare() ../src/loaders/lottie/tvgLottieModel.h:468
    #2 0x7f4ba6544959 in LottieGradientFill::prepare() ../src/loaders/lottie/tvgLottieModel.h:491
    #3 0x7f4ba652a881 in LottieParser::parseGradientFill() ../src/loaders/lottie/tvgLottieParser.cpp:736
    #4 0x7f4ba652f7ac in LottieParser::parseObject(tvg::Array<LottieObject*>&) ../src/loaders/lottie/tvgLottieParser.cpp:847
    #5 0x7f4ba652fd4c in LottieParser::parseGroup() ../src/loaders/lottie/tvgLottieParser.cpp:997
    #6 0x7f4ba653026a in LottieParser::parseShapes(tvg::Array<LottieObject*>&) ../src/loaders/lottie/tvgLottieParser.cpp:1040
    #7 0x7f4ba6531a35 in LottieParser::parseLayer() ../src/loaders/lottie/tvgLottieParser.cpp:1153
    #8 0x7f4ba6532fc8 in LottieParser::parseLayers() ../src/loaders/lottie/tvgLottieParser.cpp:1199
    #9 0x7f4ba65346d3 in LottieParser::parse() ../src/loaders/lottie/tvgLottieParser.cpp:1313
    #10 0x7f4ba650ba62 in LottieLoader::run(unsigned int) ../src/loaders/lottie/tvgLottieLoader.cpp:58
    #11 0x7f4ba650894f in LottieLoader::header() ../src/loaders/lottie/tvgLottieLoader.cpp:92
    #12 0x7f4ba63d2575 in LoaderMgr::loader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ../src/renderer/tvgLoader.cpp:301

=================================================================
==146150==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6040000001a0 at pc 0x7f7ffe341b0a bp 0x7ffe1942fcc0 sp 0x7ffe1942fcb0
READ of size 4 at 0x6040000001a0 thread T0
    #0 0x7f7ffe341b09 in LottieGradient::populate(ColorStop&) ../src/loaders/lottie/tvgLottieModel.h:394
    #1 0x7f7ffe344436 in LottieGradient::prepare() ../src/loaders/lottie/tvgLottieModel.h:468
    #2 0x7f7ffe344959 in LottieGradientFill::prepare() ../src/loaders/lottie/tvgLottieModel.h:491
    #3 0x7f7ffe32a881 in LottieParser::parseGradientFill() ../src/loaders/lottie/tvgLottieParser.cpp:736
    #4 0x7f7ffe32f7ac in LottieParser::parseObject(tvg::Array<LottieObject*>&) ../src/loaders/lottie/tvgLottieParser.cpp:847
    #5 0x7f7ffe32fd4c in LottieParser::parseGroup() ../src/loaders/lottie/tvgLottieParser.cpp:997
    #6 0x7f7ffe33026a in LottieParser::parseShapes(tvg::Array<LottieObject*>&) ../src/loaders/lottie/tvgLottieParser.cpp:1040
    #7 0x7f7ffe331a35 in LottieParser::parseLayer() ../src/loaders/lottie/tvgLottieParser.cpp:1153
    #8 0x7f7ffe332fc8 in LottieParser::parseLayers() ../src/loaders/lottie/tvgLottieParser.cpp:1199
    #9 0x7f7ffe3346d3 in LottieParser::parse() ../src/loaders/lottie/tvgLottieParser.cpp:1313
    #10 0x7f7ffe30ba62 in LottieLoader::run(unsigned int) ../src/loaders/lottie/tvgLottieLoader.cpp:58
    #11 0x7f7ffe30894f in LottieLoader::header() ../src/loaders/lottie/tvgLottieLoader.cpp:92

Direct leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7f672a6841a8 in __interceptor_strdup ../../../../src/libsanitizer/asan/asan_interceptors.cpp:454
    #1 0x7f672a13371b in LottieParser::parseAsset() ../src/loaders/lottie/tvgLottieParser.cpp:901
    #2 0x7f672a133be5 in LottieParser::parseAssets() ../src/loaders/lottie/tvgLottieParser.cpp:940
    #3 0x7f672a134659 in LottieParser::parse() ../src/loaders/lottie/tvgLottieParser.cpp:1312
    #4 0x7f672a10ba62 in LottieLoader::run(unsigned int) ../src/loaders/lottie/tvgLottieLoader.cpp:58
    #5 0x7f672a10894f in LottieLoader::header() ../src/loaders/lottie/tvgLottieLoader.cpp:92
    #6 0x7f6729fd29f5 in LoaderMgr::loader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ../src/renderer/tvgLoader.cpp:315
    #7 0x7f6729ff2d3d in tvg::Picture::Impl::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../src/renderer/tvgPicture.h:152
    #8 0x7f6729ff2d3d in tvg::Picture::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../src/renderer/tvgPicture.cpp:175
    #9 0x5612723e9aeb in App::convert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ../src/tools/lottie2gif/lottie2gif.cpp:74
    #10 0x5612723ec08c in App::convert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ../src/tools/lottie2gif/lottie2gif.cpp:102
    #11 0x5612723ef7ef in App::setup(int, char**) ../src/tools/lottie2gif/lottie2gif.cpp:269
    #12 0x5612723e7c08 in main ../src/tools/lottie2gif/lottie2gif.cpp:280
    #13 0x7f6728c2814f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

../src/common/tvgCompressor.cpp:466:51: runtime error: index 18446744073709551542 out of bounds for type 'char [256]'
=================================================================
==153102==ERROR: AddressSanitizer: global-buffer-overflow on address 0x7f7c2b57c4f6 at pc 0x7f7c2b47a5f0 bp 0x7ffda39c9590 sp 0x7ffda39c9580
READ of size 1 at 0x7f7c2b57c4f6 thread T0
    #0 0x7f7c2b47a5ef in tvg::b64Decode(char const*, unsigned long, char**) ../src/common/tvgCompressor.cpp:466
    #1 0x7f7c2b522132 in LottieParser::parseImage(char const*, char const*, bool) ../src/loaders/lottie/tvgLottieParser.cpp:871
    #2 0x7f7c2b5339c5 in LottieParser::parseAsset() ../src/loaders/lottie/tvgLottieParser.cpp:912
    #3 0x7f7c2b533be5 in LottieParser::parseAssets() ../src/loaders/lottie/tvgLottieParser.cpp:940
    #4 0x7f7c2b534659 in LottieParser::parse() ../src/loaders/lottie/tvgLottieParser.cpp:1312
    #5 0x7f7c2b50ba62 in LottieLoader::run(unsigned int) ../src/loaders/lottie/tvgLottieLoader.cpp:58
    #6 0x7f7c2b50894f in LottieLoader::header() ../src/loaders/lottie/tvgLottieLoader.cpp:92
    #7 0x7f7c2b3d2575 in LoaderMgr::loader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ../src/renderer/tvgLoader.cpp:301
    #8 0x7f7c2b3f2d3d in tvg::Picture::Impl::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../src/renderer/tvgPicture.h:152
    #9 0x7f7c2b3f2d3d in tvg::Picture::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../src/renderer/tvgPicture.cpp:175
    #10 0x5647c116aaeb in App::convert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ../src/tools/lottie2gif/lottie2gif.cpp:74
    #11 0x5647c116d08c in App::convert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ../src/tools/lottie2gif/lottie2gif.cpp:102
    #12 0x5647c11707ef in App::setup(int, char**) ../src/tools/lottie2gif/lottie2gif.cpp:269
@hermet hermet added lottie Lottie animation bug Something isn't working showstopper Regression bugs / Critical errors labels Mar 19, 2024
@hermet hermet added this to the 0.13 milestone Mar 19, 2024
@hermet hermet mentioned this issue Mar 19, 2024
37 tasks
@qarmin qarmin changed the title Random crashes/leaks, when using trying to convert invalid lottie files to gifs Random crashes/leaks, when trying to convert invalid lottie files to gifs Mar 19, 2024
JSUYA added a commit to JSUYA/thorvg that referenced this issue Mar 21, 2024
When image data fails to load or image parsing fails,
the id is leaked without being assigned to the name.
To prevent that, free id value when obj is nullptr.

related issue: thorvg#2072
BrokenLottie.7z/test3_IDX_130_RAND_18289244608080059871.json
BrokenLottie.7z/test3_IDX_131_RAND_7772102071213376276.json
BrokenLottie.7z/test3_IDX_132_RAND_3072617087893397532.json
BrokenLottie.7z/test3_IDX_134_RAND_17738488813555566674.json
BrokenLottie.7z/test3_IDX_137_RAND_13903188963759129023.json
BrokenLottie.7z/test3_IDX_138_RAND_1645404078965858130.json
hermet pushed a commit that referenced this issue Mar 21, 2024
When image data fails to load or image parsing fails,
the id is leaked without being assigned to the name.
To prevent that, free id value when obj is nullptr.

related issue: #2072
BrokenLottie.7z/test3_IDX_130_RAND_18289244608080059871.json
BrokenLottie.7z/test3_IDX_131_RAND_7772102071213376276.json
BrokenLottie.7z/test3_IDX_132_RAND_3072617087893397532.json
BrokenLottie.7z/test3_IDX_134_RAND_17738488813555566674.json
BrokenLottie.7z/test3_IDX_137_RAND_13903188963759129023.json
BrokenLottie.7z/test3_IDX_138_RAND_1645404078965858130.json
@hermet
Copy link
Member

hermet commented Mar 21, 2024

@JSUYA ok to close?

@JSUYA
Copy link
Member

JSUYA commented Mar 21, 2024

files with info about problems - BrokenLottie.7z.zip - (this is 7zip archive, but named zip, to be able to post it here)

@JSUYA ok to close?

Hi, various defects are occurring in 888 json test files.
This PR solves some of that.

Issues related to gradient color stops require further check. There seem to be more cases depending on how color stop is defined.

hermet pushed a commit that referenced this issue Mar 21, 2024
When image data fails to load or image parsing fails,
the id is leaked without being assigned to the name.
To prevent that, free id value when obj is nullptr.

related issue: #2072
BrokenLottie.7z/test3_IDX_130_RAND_18289244608080059871.json
BrokenLottie.7z/test3_IDX_131_RAND_7772102071213376276.json
BrokenLottie.7z/test3_IDX_132_RAND_3072617087893397532.json
BrokenLottie.7z/test3_IDX_134_RAND_17738488813555566674.json
BrokenLottie.7z/test3_IDX_137_RAND_13903188963759129023.json
BrokenLottie.7z/test3_IDX_138_RAND_1645404078965858130.json
fall2019 added a commit to fall2019/thorvg that referenced this issue Mar 22, 2024
Prototyping.

Update tvgLottieLoader.cpp

Update tvgAnimation.cpp

range

gl_engine: make stencil task support other advance logical

* Support rendering Gradient in path Stroke mode
* Fix GlStencilCoverTask not support even-odd fill rule
* Make GlStencilCoverTask can discard overlapped area during stroke
  rendering

lottie: Added gradient population preventing logic

`LottieGradient.populate` function checks whether the value has already been calculated and populated via the flag `populated`.

loader/lottie: Prevent leak memory when image load fails

When image data fails to load or image parsing fails,
the id is leaked without being assigned to the name.
To prevent that, free id value when obj is nullptr.

related issue: thorvg#2072
BrokenLottie.7z/test3_IDX_130_RAND_18289244608080059871.json
BrokenLottie.7z/test3_IDX_131_RAND_7772102071213376276.json
BrokenLottie.7z/test3_IDX_132_RAND_3072617087893397532.json
BrokenLottie.7z/test3_IDX_134_RAND_17738488813555566674.json
BrokenLottie.7z/test3_IDX_137_RAND_13903188963759129023.json
BrokenLottie.7z/test3_IDX_138_RAND_1645404078965858130.json

lottie/property: code refactoring

introduce the release() method for memory freeing.
This method can be used for any demands.

test/lottie: added the slot resetting use case

lottie: Support the slot reverting feature

Implemented the ability to revert Lottie slots by calling override with nullptr.
This functionality allows for the complete reversal of applied slots.

usage:
- `animation->override(nullptr)`

Co-Authored-By: Hermet Park <hermet@lottiefiles.com>

1

11

1

remove string_view

fix compile for ci

Revert "Merge branch 'main' into lucas/markers"

This reverts commit e448f0d, reversing
changes made to 44402f7.
tinyjin added a commit to tinyjin/thorvg that referenced this issue Mar 27, 2024
When lottie is broken and provides invalid gradient, the program crashes in segmentation fault.

At that time, in the `populate` function, `ColorStop& color` doesn't have `input` but tries to use it.

Added checking nullptr logic. The function `populate` will not proceed and return 0 in that case.

related issue: thorvg#2072
hermet pushed a commit that referenced this issue Mar 27, 2024
When lottie is broken and provides invalid gradient, the program crashes in segmentation fault.

At that time, in the `populate` function, `ColorStop& color` doesn't have `input` but tries to use it.

Added checking nullptr logic. The function `populate` will not proceed and return 0 in that case.

related issue: #2072
tinyjin added a commit to tinyjin/thorvg that referenced this issue Mar 27, 2024
This change is better for stability. Returns `None` if the `mode` attribute cannot be parsed.

related issue: thorvg#2072
hermet pushed a commit that referenced this issue Mar 27, 2024
This change is better for stability. Returns `None` if the `mode` attribute cannot be parsed.

related issue: #2072
@hermet
Copy link
Member

hermet commented Mar 28, 2024

  • lottieslot_IDX_115_RAND_16109261102165821315.json
  • lottieslot_IDX_118_RAND_15881926118350713257.json
  • lottieslot_IDX_126_RAND_16601351284790143166.json
  • lottieslot_IDX_127_RAND_2435458778335924685.json
  • lottieslot_IDX_136_RAND_389829138177223098.json
  • lottieslot_IDX_177_RAND_16025790448066370425.json
  • lottieslot_IDX_198_RAND_12222704937178303596.json
  • lottieslot_IDX_19_RAND_12869611367480417304.json
  • lottieslot_IDX_246_RAND_14265115990637144842.json
  • lottieslot_IDX_252_RAND_16333113645329726009.json
  • lottieslot_IDX_257_RAND_16590272615132028700.json
  • lottieslot_IDX_25_RAND_6847350414593490645.json
  • lottieslot_IDX_269_RAND_6355733993080572443.json
  • lottieslot_IDX_276_RAND_4643679359098999915.json
  • lottieslot_IDX_290_RAND_5782940052166760100.json
  • lottieslot_IDX_2_RAND_6332298139641021187.json
  • lottieslot_IDX_314_RAND_4121161721008894171.json
  • lottieslot_IDX_322_RAND_14781833810559079611.json
  • lottieslot_IDX_331_RAND_18138578377277321461.json
  • lottieslot_IDX_334_RAND_4516773319034023871.json
  • lottieslot_IDX_335_RAND_3810668890965417759.json
  • lottieslot_IDX_340_RAND_890768360192229506.json
  • lottieslot_IDX_349_RAND_4202171952580507889.json
  • lottieslot_IDX_365_RAND_16002727035396185293.json
  • lottieslot_IDX_371_RAND_3166115179761285399.json
  • lottieslot_IDX_388_RAND_9674084855534504320.json
  • lottieslot_IDX_396_RAND_7048663790889268747.json
  • lottieslot_IDX_438_RAND_1597037011116429813.json
  • lottieslot_IDX_442_RAND_10168869960144848391.json
  • lottieslot_IDX_44_RAND_15848512419441078021.json
  • lottieslot_IDX_47_RAND_13313713864635949061.json
  • lottieslot_IDX_481_RAND_5533583856709860217.json
  • lottieslot_IDX_488_RAND_10046951695042558533.json
  • lottieslot_IDX_494_RAND_13622402706576190891.json
  • lottieslot_IDX_502_RAND_13520934972534697255.json
  • lottieslot_IDX_50_RAND_5807196878273210903.json
  • lottieslot_IDX_523_RAND_8069469127718702162.json
  • lottieslot_IDX_524_RAND_8007852622351744673.json
  • lottieslot_IDX_526_RAND_5283107812946289348.json
  • lottieslot_IDX_530_RAND_9564374638529308138.json
  • lottieslot_IDX_538_RAND_11924166140672789433.json
  • lottieslot_IDX_548_RAND_1075250745224830512.json
  • lottieslot_IDX_551_RAND_13975779307000336451.json
  • lottieslot_IDX_558_RAND_10425495390193297655.json
  • lottieslot_IDX_55_RAND_9432165057333607863.json
  • lottieslot_IDX_572_RAND_9694604589892860805.json
  • lottieslot_IDX_575_RAND_9968416901598205214.json
  • lottieslot_IDX_599_RAND_16745678971660227211.json
  • lottieslot_IDX_607_RAND_960097296672477090.json
  • lottieslot_IDX_643_RAND_4802911170159023183.json
  • lottieslot_IDX_660_RAND_8132971236122420959.json
  • lottieslot_IDX_665_RAND_15062573671237946809.json
  • lottieslot_IDX_676_RAND_14270360463326789156.json
  • lottieslot_IDX_681_RAND_9156968126877813840.json
  • lottieslot_IDX_693_RAND_13581979673268432598.json
  • lottieslot_IDX_707_RAND_15682861372400642101.json
  • lottieslot_IDX_709_RAND_6151344143055497561.json
  • lottieslot_IDX_710_RAND_11495257627007842331.json
  • lottieslot_IDX_716_RAND_11834367448440714275.json
  • lottieslot_IDX_722_RAND_6529718409126373004.json
  • lottieslot_IDX_72_RAND_15114513152328341965.json
  • lottieslot_IDX_749_RAND_3047173088254907970.json
  • lottieslot_IDX_751_RAND_17918486207630782295.json
  • lottieslot_IDX_786_RAND_10522762378512209520.json
  • lottieslot_IDX_792_RAND_13022281038269049661.json
  • lottieslot_IDX_794_RAND_18114047855947486766.json
  • lottieslot_IDX_796_RAND_12525647838442902678.json
  • lottieslot_IDX_798_RAND_3210182909665536676.json
  • lottieslot_IDX_806_RAND_7324836906375255346.json
  • lottieslot_IDX_825_RAND_9976590591460340486.json
  • lottieslot_IDX_826_RAND_11799214615267611408.json
  • lottieslot_IDX_830_RAND_14897293364053685755.json
  • lottieslot_IDX_835_RAND_17324730956749130541.json
  • lottieslot_IDX_852_RAND_15701781312441414516.json
  • lottieslot_IDX_856_RAND_5481601035849983148.json
  • lottieslot_IDX_865_RAND_2182212067359912553.json
  • lottieslot_IDX_897_RAND_3204982804588203035.json
  • lottieslot_IDX_89_RAND_15775210715052235439.json
  • lottieslot_IDX_922_RAND_9379437252536469582.json
  • lottieslot_IDX_933_RAND_11642655611548375819.json
  • lottieslot_IDX_955_RAND_18272704187300492198.json
  • lottieslot_IDX_95_RAND_17512533089551937727.json
  • lottieslot_IDX_966_RAND_5019491844782072992.json
  • lottieslot_IDX_969_RAND_8044177566861818181.json
  • lottieslot_IDX_972_RAND_17592007860926860642.json
  • lottieslot_IDX_984_RAND_4663055766565815753.json
  • lottieslot_IDX_989_RAND_4751417041702657177.json
  • test2_IDX_100_RAND_16768380576420939481.json
  • test2_IDX_108_RAND_3873292286373225455.json
  • test2_IDX_115_RAND_4531419694509628179.json
  • test2_IDX_119_RAND_9516656879568607957.json
  • test2_IDX_150_RAND_2593332181528525927.json
  • test2_IDX_154_RAND_17318329659255136354.json
  • test2_IDX_155_RAND_9509419281706513589.json
  • test2_IDX_157_RAND_11782140838232803025.json
  • test2_IDX_175_RAND_2431884594419535017.json
  • test2_IDX_188_RAND_13147909534045082976.json
  • test2_IDX_202_RAND_7740287877026205364.json
  • test2_IDX_20_RAND_12361037516278617646.json
  • test2_IDX_227_RAND_12921603168399703892.json
  • test2_IDX_234_RAND_9711691308854503322.json
  • test2_IDX_238_RAND_17590662798394336096.json
  • test2_IDX_24_RAND_10061367355181169726.json
  • test2_IDX_250_RAND_1144013330817563511.json
  • test2_IDX_251_RAND_3403509184410368076.json
  • test2_IDX_253_RAND_17446934194287372705.json
  • test2_IDX_256_RAND_16916089191872980947.json
  • test2_IDX_263_RAND_3639632747492639468.json
  • test2_IDX_267_RAND_8541903710322297871.json
  • test2_IDX_287_RAND_4378790603132164469.json
  • test2_IDX_301_RAND_11289534843001667381.json
  • test2_IDX_304_RAND_16288177531326858847.json
  • test2_IDX_310_RAND_18171488514279033925.json
  • test2_IDX_31_RAND_16802889738923433566.json
  • test2_IDX_324_RAND_10068222143507958832.json
  • test2_IDX_353_RAND_11575833368038406506.json
  • test2_IDX_362_RAND_9810019747678143066.json
  • test2_IDX_373_RAND_16591373036549821965.json
  • test2_IDX_375_RAND_6128809124101523845.json
  • test2_IDX_376_RAND_1897679037206533153.json
  • test2_IDX_399_RAND_11415011036140358201.json
  • test2_IDX_3_RAND_17304109083372455950.json
  • test2_IDX_401_RAND_624927642861839821.json
  • test2_IDX_406_RAND_11036182561391787765.json
  • test2_IDX_413_RAND_3792249941355912361.json
  • test2_IDX_417_RAND_1988233089133370806.json
  • test2_IDX_424_RAND_12954210552408499303.json
  • test2_IDX_430_RAND_5872375504782294098.json
  • test2_IDX_432_RAND_9518456926443136506.json
  • test2_IDX_436_RAND_15366945117731534954.json
  • test2_IDX_471_RAND_2747573151866029382.json
  • test2_IDX_533_RAND_14175929970704338428.json
  • test2_IDX_535_RAND_3398545710588368341.json
  • test2_IDX_541_RAND_10960974720930957252.json
  • test2_IDX_551_RAND_14810775067170392449.json
  • test2_IDX_561_RAND_16714484940400917035.json
  • test2_IDX_569_RAND_3456560805256839766.json
  • test2_IDX_576_RAND_6072656631706317221.json
  • test2_IDX_590_RAND_3721155835193415416.json
  • test2_IDX_604_RAND_4282371157344378579.json
  • test2_IDX_617_RAND_6690482922101232404.json
  • test2_IDX_621_RAND_4308059747203893547.json
  • test2_IDX_622_RAND_133504719298227484.json
  • test2_IDX_626_RAND_13004558938535489540.json
  • test2_IDX_644_RAND_940551425838620766.json
  • test2_IDX_64_RAND_17919581006361141115.json
  • test2_IDX_663_RAND_3692517112699816375.json
  • test2_IDX_665_RAND_10861245892183739721.json
  • test2_IDX_669_RAND_16946751413272657531.json
  • test2_IDX_677_RAND_1205430493211264718.json
  • test2_IDX_687_RAND_2629664899575711004.json
  • test2_IDX_692_RAND_961494025256371257.json
  • test2_IDX_693_RAND_13791389252479565250.json
  • test2_IDX_706_RAND_7544503461867234256.json
  • test2_IDX_713_RAND_18056815685321877855.json
  • test2_IDX_746_RAND_17314828375027414619.json
  • test2_IDX_770_RAND_11078530773242914803.json
  • test2_IDX_797_RAND_17820204362500125931.json
  • test2_IDX_811_RAND_9574199820182858616.json
  • test2_IDX_825_RAND_418482071998379178.json
  • test2_IDX_868_RAND_5317332795574096799.json
  • test2_IDX_870_RAND_261528393570656121.json
  • test2_IDX_880_RAND_589638247692594489.json
  • test2_IDX_90_RAND_2985418582637541460.json
  • test2_IDX_933_RAND_5793758662868838445.json
  • test2_IDX_938_RAND_13195915120173669802.json
  • test2_IDX_954_RAND_17743200854101488309.json
  • test2_IDX_963_RAND_9966351571648461197.json
  • test2_IDX_977_RAND_361860770418440073.json
  • test2_IDX_982_RAND_8595009495426711389.json
  • test2_IDX_994_RAND_6204879847882172293.json
  • test3_IDX_0_RAND_896891684456274134.json
  • test3_IDX_102_RAND_1121496428737645577.json
  • test3_IDX_103_RAND_18207195360795696861.json
  • test3_IDX_104_RAND_3070988726917405495.json
  • test3_IDX_105_RAND_9034353523823199602.json
  • test3_IDX_107_RAND_8206816462618700169.json
  • test3_IDX_110_RAND_353793451564692142.json
  • test3_IDX_111_RAND_14495939003376948369.json
  • test3_IDX_113_RAND_3095375677830670270.json
  • test3_IDX_114_RAND_18058571645869157452.json
  • test3_IDX_115_RAND_4728854102074432035.json
  • test3_IDX_116_RAND_8000387798449530786.json
  • test3_IDX_117_RAND_3207762803184774861.json
  • test3_IDX_118_RAND_1182370746641854871.json
  • test3_IDX_11_RAND_6145945255645969600.json
  • test3_IDX_120_RAND_7069101352525242891.json
  • test3_IDX_122_RAND_5397238904740149605.json
  • test3_IDX_124_RAND_15380836541826411649.json
  • test3_IDX_125_RAND_17637879978663558920.json
  • test3_IDX_126_RAND_6699986471693864461.json
  • test3_IDX_127_RAND_4221562738579431624.json
  • test3_IDX_128_RAND_17179754713537507444.json
  • test3_IDX_129_RAND_1943406752766802565.json
  • test3_IDX_12_RAND_12475638518261129951.json
  • test3_IDX_130_RAND_18289244608080059871.json
  • test3_IDX_131_RAND_7772102071213376276.json
  • test3_IDX_132_RAND_3072617087893397532.json
  • test3_IDX_134_RAND_17738488813555566674.json
  • test3_IDX_137_RAND_13903188963759129023.json
  • test3_IDX_138_RAND_1645404078965858130.json
  • test3_IDX_139_RAND_5592964566084042790.json
  • test3_IDX_13_RAND_15154208839186490675.json
  • test3_IDX_140_RAND_2849251381728930071.json
  • test3_IDX_143_RAND_1643357074295502010.json
  • test3_IDX_144_RAND_7268863134160093556.json
  • test3_IDX_146_RAND_11284023124118786523.json
  • test3_IDX_148_RAND_10386091944514834079.json
  • test3_IDX_14_RAND_13827641183479862456.json
  • test3_IDX_151_RAND_9983183622089323509.json
  • test3_IDX_153_RAND_16974708060759941795.json
  • test3_IDX_154_RAND_5070763216221233395.json
  • test3_IDX_155_RAND_12276219091632974620.json
  • test3_IDX_156_RAND_14069704645858749638.json
  • test3_IDX_157_RAND_11829094895463733688.json
  • test3_IDX_159_RAND_14785377604018713029.json
  • test3_IDX_160_RAND_520453315862129946.json
  • test3_IDX_161_RAND_14981744072682128288.json
  • test3_IDX_162_RAND_2415328131298269176.json
  • test3_IDX_165_RAND_168958409964270155.json
  • test3_IDX_166_RAND_8915303803995801004.json
  • test3_IDX_167_RAND_4770537212728769472.json
  • test3_IDX_168_RAND_13441116718080558045.json
  • test3_IDX_169_RAND_10870821557398472626.json
  • test3_IDX_16_RAND_15628229928630476612.json
  • test3_IDX_170_RAND_6620459516739961322.json
  • test3_IDX_175_RAND_14225705403558355040.json
  • test3_IDX_176_RAND_1464731393527428261.json
  • test3_IDX_178_RAND_17037697563792128632.json
  • test3_IDX_181_RAND_2805317572205704676.json
  • test3_IDX_183_RAND_6845656010206144515.json
  • test3_IDX_184_RAND_10588822821584268138.json
  • test3_IDX_186_RAND_15614657936196263918.json
  • test3_IDX_187_RAND_14867998283584672103.json
  • test3_IDX_189_RAND_12064946262824352781.json
  • test3_IDX_18_RAND_14487915849322851868.json
  • test3_IDX_194_RAND_13811755346253733078.json
  • test3_IDX_195_RAND_1121153921178558749.json
  • test3_IDX_196_RAND_7308795368524171138.json
  • test3_IDX_197_RAND_5742240619401685809.json
  • test3_IDX_199_RAND_11989186220541606565.json
  • test3_IDX_1_RAND_16896192801263452763.json
  • test3_IDX_200_RAND_6354726630682802410.json
  • test3_IDX_201_RAND_400305009471544756.json
  • test3_IDX_205_RAND_12195948882132886443.json
  • test3_IDX_206_RAND_9860132550662617731.json
  • test3_IDX_207_RAND_4394267283152279868.json
  • test3_IDX_209_RAND_1856981793175932992.json
  • test3_IDX_210_RAND_15711535468790596688.json
  • test3_IDX_212_RAND_4374250552388624343.json
  • test3_IDX_214_RAND_14409888508634152994.json
  • test3_IDX_215_RAND_13894483834595188806.json
  • test3_IDX_217_RAND_14386213016551030598.json
  • test3_IDX_218_RAND_2423138345353098599.json
  • test3_IDX_219_RAND_412706542940654021.json
  • test3_IDX_21_RAND_14225727997581785410.json
  • test3_IDX_221_RAND_9067391663609183485.json
  • test3_IDX_223_RAND_782070498070522127.json
  • test3_IDX_225_RAND_13946105294920405932.json
  • test3_IDX_227_RAND_3096846471369296771.json
  • test3_IDX_228_RAND_13970850710696809531.json
  • test3_IDX_22_RAND_4694159503070669537.json
  • test3_IDX_231_RAND_114519164216274102.json
  • test3_IDX_232_RAND_8864782266220497691.json
  • test3_IDX_234_RAND_6087758505341224307.json
  • test3_IDX_235_RAND_10598574375987582985.json
  • test3_IDX_236_RAND_12657785114575862460.json
  • test3_IDX_237_RAND_12057462314033785740.json
  • test3_IDX_23_RAND_124579335074344671.json
  • test3_IDX_240_RAND_13242291614899314168.json
  • test3_IDX_244_RAND_12567645346950896123.json
  • test3_IDX_245_RAND_16574039782146054806.json
  • test3_IDX_246_RAND_5408071827887798353.json
  • test3_IDX_248_RAND_1361015916350544596.json
  • test3_IDX_249_RAND_9725491036269577195.json
  • test3_IDX_24_RAND_1556607247040044851.json
  • test3_IDX_250_RAND_18117060439085551651.json
  • test3_IDX_252_RAND_5896896159647000132.json
  • test3_IDX_256_RAND_12653229542567683853.json
  • test3_IDX_257_RAND_4873398735464813445.json
  • test3_IDX_258_RAND_8483317689683430237.json
  • test3_IDX_259_RAND_14647775690865088798.json
  • test3_IDX_25_RAND_14708383856984994724.json
  • test3_IDX_261_RAND_18008805067386440742.json
  • test3_IDX_265_RAND_15376195872553881944.json
  • test3_IDX_266_RAND_10653255737575512666.json
  • test3_IDX_269_RAND_17001362837648154772.json
  • test3_IDX_26_RAND_15716699792165993038.json
  • test3_IDX_270_RAND_3208861680913855126.json
  • test3_IDX_271_RAND_1414548418447959733.json
  • test3_IDX_272_RAND_10288460601962586235.json
  • test3_IDX_273_RAND_963200597674523847.json
  • test3_IDX_274_RAND_7856370748348104939.json
  • test3_IDX_275_RAND_2227819859948298078.json
  • test3_IDX_276_RAND_11075821684258070565.json
  • test3_IDX_278_RAND_7831208954810426934.json
  • test3_IDX_27_RAND_12334642583310723628.json
  • test3_IDX_282_RAND_803986694141749117.json
  • test3_IDX_283_RAND_8987258787579956835.json
  • test3_IDX_284_RAND_5240307911222137464.json
  • test3_IDX_286_RAND_7255967692081265574.json
  • test3_IDX_289_RAND_1781713132134634569.json
  • test3_IDX_28_RAND_16261639712779502311.json
  • test3_IDX_290_RAND_1009166073109087116.json
  • test3_IDX_292_RAND_7615421251798528635.json
  • test3_IDX_293_RAND_12743228707664305542.json
  • test3_IDX_295_RAND_4488864269991235152.json
  • test3_IDX_297_RAND_3406533493701320081.json
  • test3_IDX_298_RAND_5282047831613968713.json
  • test3_IDX_29_RAND_5272339023815514012.json
  • test3_IDX_2_RAND_11039363682153568758.json
  • test3_IDX_300_RAND_16548644067876359768.json
  • test3_IDX_302_RAND_5943751055777145030.json
  • test3_IDX_303_RAND_5174572730648485120.json
  • test3_IDX_305_RAND_3166001845709978043.json
  • test3_IDX_308_RAND_5109256771603515030.json
  • test3_IDX_309_RAND_2627387674268402147.json
  • test3_IDX_30_RAND_9807958123978679008.json
  • test3_IDX_311_RAND_9239128262778963072.json
  • test3_IDX_312_RAND_3894491607746965497.json
  • test3_IDX_315_RAND_12867440302132616293.json
  • test3_IDX_318_RAND_3687741343477399164.json
  • test3_IDX_319_RAND_1849939203627256236.json
  • test3_IDX_31_RAND_9528141365450000806.json
  • test3_IDX_320_RAND_13903249154680098043.json
  • test3_IDX_321_RAND_7428040121719633889.json
  • test3_IDX_322_RAND_1736680732889736496.json
  • test3_IDX_323_RAND_14189677541268692694.json
  • test3_IDX_325_RAND_14407315243590778886.json
  • test3_IDX_326_RAND_6462354239156811409.json
  • test3_IDX_327_RAND_17053283609780215050.json
  • test3_IDX_328_RAND_3890343609240476495.json
  • test3_IDX_329_RAND_3744519025233726027.json
  • test3_IDX_32_RAND_320444524519970931.json
  • test3_IDX_330_RAND_7397217205492313221.json
  • test3_IDX_332_RAND_6950258000749007567.json
  • test3_IDX_333_RAND_1100870492651779831.json
  • test3_IDX_335_RAND_17224179259756406077.json
  • test3_IDX_336_RAND_7701132266393405422.json
  • test3_IDX_33_RAND_7905993734291746626.json
  • test3_IDX_340_RAND_2904929283086264099.json
  • test3_IDX_341_RAND_16358156724239154205.json
  • test3_IDX_342_RAND_430619914890349516.json
  • test3_IDX_343_RAND_11945002641316738766.json
  • test3_IDX_344_RAND_17441307219331847780.json
  • test3_IDX_345_RAND_15665110288408866254.json
  • test3_IDX_348_RAND_6154362531045736765.json
  • test3_IDX_349_RAND_11563559196991166282.json
  • test3_IDX_350_RAND_15930595124759831954.json
  • test3_IDX_351_RAND_5142955699868527967.json
  • test3_IDX_355_RAND_1650858281113095823.json
  • test3_IDX_356_RAND_12562646170890695879.json
  • test3_IDX_357_RAND_17523390023560491091.json
  • test3_IDX_358_RAND_9974623228941106496.json
  • test3_IDX_35_RAND_8309361089976797197.json
  • test3_IDX_360_RAND_5350322838463895171.json
  • test3_IDX_362_RAND_9285396987344023039.json
  • test3_IDX_365_RAND_3005078144486597908.json
  • test3_IDX_366_RAND_3484596338061349949.json
  • test3_IDX_36_RAND_1393832088274273791.json
  • test3_IDX_370_RAND_15070298846233710768.json
  • test3_IDX_371_RAND_16274006406031054155.json
  • test3_IDX_372_RAND_1759692357680265405.json
  • test3_IDX_373_RAND_2450901585066873390.json
  • test3_IDX_374_RAND_5301172408164909012.json
  • test3_IDX_376_RAND_4664825042631960169.json
  • test3_IDX_379_RAND_14364237047649578860.json
  • test3_IDX_37_RAND_12106071898810941513.json
  • test3_IDX_381_RAND_10742899654414738552.json
  • test3_IDX_382_RAND_873792067844121181.json
  • test3_IDX_383_RAND_2638985116126516316.json
  • test3_IDX_384_RAND_14678360169977522089.json
  • test3_IDX_388_RAND_10331183508133349817.json
  • test3_IDX_38_RAND_4242438812918952909.json
  • test3_IDX_391_RAND_6588376788446720384.json
  • test3_IDX_392_RAND_10661379240666525349.json
  • test3_IDX_394_RAND_4126100997181828200.json
  • test3_IDX_395_RAND_12267581115973939435.json
  • test3_IDX_396_RAND_4068649488446864963.json
  • test3_IDX_397_RAND_17351787240128321800.json
  • test3_IDX_398_RAND_9265656788483549356.json
  • test3_IDX_399_RAND_13024760870823789917.json
  • test3_IDX_39_RAND_6340537060911656475.json
  • test3_IDX_3_RAND_14170698918210207326.json
  • test3_IDX_400_RAND_10683961275868567988.json
  • test3_IDX_401_RAND_5947889647056416324.json
  • [] test3_IDX_403_RAND_17402148772301014154.json
  • test3_IDX_404_RAND_6411428235889583141.json
  • test3_IDX_405_RAND_14727774459982846074.json
  • test3_IDX_406_RAND_11306220042999764799.json
  • test3_IDX_408_RAND_13459228921725833911.json
  • test3_IDX_410_RAND_14090972956240772381.json
  • test3_IDX_411_RAND_15506996807518602260.json
  • test3_IDX_412_RAND_18137148630987469903.json
  • test3_IDX_413_RAND_4369115827771045893.json
  • test3_IDX_415_RAND_18345302663912781335.json
  • test3_IDX_416_RAND_5140687413754895321.json
  • test3_IDX_417_RAND_7484692762030026121.json
  • test3_IDX_418_RAND_5375691872999257345.json
  • test3_IDX_41_RAND_12534492298202793913.json
  • test3_IDX_421_RAND_3065797062948834387.json
  • test3_IDX_425_RAND_15032489552330596191.json
  • test3_IDX_427_RAND_8597942134036546394.json
  • test3_IDX_428_RAND_12893760846849523494.json
  • test3_IDX_429_RAND_4111838688096219697.json
  • test3_IDX_42_RAND_683494439044680773.json
  • test3_IDX_431_RAND_2961487758479682902.json
  • test3_IDX_434_RAND_2795046464734540068.json
  • test3_IDX_435_RAND_7659137810015724414.json
  • test3_IDX_436_RAND_797127152983510735.json
  • test3_IDX_438_RAND_1585287978292467101.json
  • test3_IDX_439_RAND_6775100450322943032.json
  • test3_IDX_442_RAND_2897373306363859547.json
  • test3_IDX_443_RAND_13331116727929144723.json
  • test3_IDX_445_RAND_15957671353251219151.json
  • test3_IDX_446_RAND_11463706709239033772.json
  • test3_IDX_447_RAND_822170916741454282.json
  • test3_IDX_449_RAND_3594934771433374835.json
  • test3_IDX_44_RAND_4503470951166045896.json
  • test3_IDX_450_RAND_716644126872997149.json
  • test3_IDX_452_RAND_13991300742522953068.json
  • test3_IDX_453_RAND_7705202866383304838.json
  • test3_IDX_454_RAND_6088719481469211225.json
  • test3_IDX_456_RAND_7820400535536840564.json
  • test3_IDX_457_RAND_17905844100556350751.json
  • test3_IDX_458_RAND_14501957904880620315.json
  • test3_IDX_45_RAND_17842113605045010462.json
  • test3_IDX_463_RAND_684709215238962122.json
  • test3_IDX_465_RAND_10500555623406376123.json
  • test3_IDX_466_RAND_4925658582887908549.json
  • test3_IDX_468_RAND_4607707335968026068.json
  • test3_IDX_471_RAND_18435062422784962556.json
  • test3_IDX_472_RAND_15558199464317265330.json
  • test3_IDX_473_RAND_1269849385973439795.json
  • test3_IDX_474_RAND_7371740404738574533.json
  • test3_IDX_476_RAND_9064552676488764759.json
  • test3_IDX_479_RAND_4549519817787480330.json
  • test3_IDX_480_RAND_11537417764137443044.json
  • test3_IDX_481_RAND_4344665982992157625.json
  • test3_IDX_482_RAND_6714889399655281341.json
  • test3_IDX_484_RAND_17851325153487520322.json
  • test3_IDX_485_RAND_12783024075666239420.json
  • test3_IDX_486_RAND_5506843464616935866.json
  • test3_IDX_48_RAND_16968141286195440322.json
  • test3_IDX_492_RAND_15726890651328149146.json
  • test3_IDX_493_RAND_15464482197496429149.json
  • test3_IDX_494_RAND_15825745590062083091.json
  • test3_IDX_495_RAND_167606950305000067.json
  • test3_IDX_496_RAND_15834273766186619934.json
  • test3_IDX_498_RAND_775532144718515672.json
  • test3_IDX_499_RAND_12871981372918861735.json
  • test3_IDX_49_RAND_5795804283831951009.json
  • test3_IDX_4_RAND_4437771658462790813.json
  • test3_IDX_501_RAND_7793506069404039991.json
  • test3_IDX_503_RAND_5472302421190216258.json
  • test3_IDX_504_RAND_9596124485386530848.json
  • test3_IDX_506_RAND_2829179211517875154.json
  • test3_IDX_507_RAND_6994250461037405604.json
  • test3_IDX_511_RAND_6100213899541682219.json
  • test3_IDX_513_RAND_11251896140583719659.json
  • test3_IDX_514_RAND_8530756503073927587.json
  • test3_IDX_515_RAND_144313842313936142.json
  • test3_IDX_516_RAND_11065153445951437685.json
  • test3_IDX_517_RAND_2947679017925935486.json
  • test3_IDX_520_RAND_3908620907241453412.json
  • test3_IDX_521_RAND_8744766832430326895.json
  • test3_IDX_522_RAND_8865103537885490128.json
  • test3_IDX_526_RAND_1292274877169793759.json
  • test3_IDX_527_RAND_15451432499745005465.json
  • test3_IDX_528_RAND_11885881777332825872.json
  • test3_IDX_529_RAND_16539877435586306377.json
  • test3_IDX_530_RAND_335016858033285461.json
  • test3_IDX_531_RAND_6860394119192193980.json
  • test3_IDX_532_RAND_7268421318342459278.json
  • test3_IDX_533_RAND_14947413989595842062.json
  • test3_IDX_534_RAND_12036107554057559527.json
  • test3_IDX_538_RAND_11435781477741758427.json
  • test3_IDX_541_RAND_2308956957028757699.json
  • test3_IDX_542_RAND_5513378762887317865.json
  • test3_IDX_543_RAND_4231752913733913761.json
  • test3_IDX_544_RAND_9192980668555238570.json
  • test3_IDX_545_RAND_16459068370913838474.json
  • test3_IDX_547_RAND_14005310182013322596.json
  • test3_IDX_548_RAND_2866286537989340415.json
  • test3_IDX_54_RAND_15956159121958754739.json
  • test3_IDX_551_RAND_11643024057215888354.json
  • test3_IDX_553_RAND_5617802604350944268.json
  • test3_IDX_554_RAND_459377183553691798.json
  • test3_IDX_556_RAND_12110984499118383779.json
  • test3_IDX_557_RAND_1588091214709962799.json
  • test3_IDX_559_RAND_17242035782424511889.json
  • test3_IDX_55_RAND_12986995384763150746.json
  • test3_IDX_560_RAND_8641312662723112010.json
  • test3_IDX_563_RAND_2621756588527760306.json
  • test3_IDX_565_RAND_8446460470941447868.json
  • test3_IDX_566_RAND_1357208868793222488.json
  • test3_IDX_567_RAND_14685972484617160742.json
  • test3_IDX_569_RAND_14783331629961386761.json
  • test3_IDX_56_RAND_12516730159852238951.json
  • test3_IDX_570_RAND_527854548391591561.json
  • test3_IDX_572_RAND_15372039129532863991.json
  • test3_IDX_573_RAND_17652965840868823126.json
  • test3_IDX_575_RAND_16148080177196559722.json
  • test3_IDX_576_RAND_10086746718655667314.json
  • test3_IDX_577_RAND_8087349520889220328.json
  • test3_IDX_578_RAND_7145497457116089903.json
  • test3_IDX_57_RAND_2852678734798362993.json
  • test3_IDX_581_RAND_8956050478618098542.json
  • test3_IDX_582_RAND_15215244221153385818.json
  • test3_IDX_583_RAND_2132191329613908252.json
  • test3_IDX_584_RAND_15634557982265579773.json
  • test3_IDX_587_RAND_7798286022792855221.json
  • test3_IDX_589_RAND_8798255218369896129.json
  • test3_IDX_591_RAND_17499591389401546529.json
  • test3_IDX_592_RAND_491414726196091256.json
  • test3_IDX_593_RAND_14952507856240922706.json
  • test3_IDX_596_RAND_3329378204324984993.json
  • test3_IDX_597_RAND_16915476175042572973.json
  • test3_IDX_598_RAND_15785392611938535025.json
  • test3_IDX_5_RAND_11144334477875147023.json
  • test3_IDX_600_RAND_7996570366930437406.json
  • test3_IDX_601_RAND_1111101163515011443.json
  • test3_IDX_602_RAND_11495450415602926747.json
  • test3_IDX_606_RAND_6971989296840417179.json
  • test3_IDX_607_RAND_12234798970406674580.json
  • test3_IDX_608_RAND_5806707662560258586.json
  • test3_IDX_609_RAND_5127556601014753964.json
  • test3_IDX_60_RAND_9313259449426911482.json
  • test3_IDX_610_RAND_6868750563760154303.json
  • test3_IDX_611_RAND_16854520673628615762.json
  • test3_IDX_612_RAND_12595923580113570863.json
  • test3_IDX_613_RAND_12158821429024452020.json
  • test3_IDX_614_RAND_7903926110978716522.json
  • test3_IDX_616_RAND_1762117753842295331.json
  • test3_IDX_617_RAND_17172251880989310614.json
  • test3_IDX_61_RAND_6680416184159049761.json
  • test3_IDX_620_RAND_18360291312517368391.json
  • test3_IDX_621_RAND_192341347008036191.json
  • test3_IDX_622_RAND_15975668163810031494.json
  • test3_IDX_625_RAND_11672107117004630354.json
  • test3_IDX_626_RAND_7159283916015843911.json
  • test3_IDX_62_RAND_14264694530752380586.json
  • test3_IDX_631_RAND_63630479983946557.json
  • test3_IDX_632_RAND_15948337318985538339.json
  • test3_IDX_633_RAND_17114487120721271444.json
  • test3_IDX_634_RAND_13431066460632628501.json
  • test3_IDX_635_RAND_7960623205892609199.json
  • test3_IDX_636_RAND_10128984691889134970.json
  • test3_IDX_637_RAND_9879223803507822736.json
  • test3_IDX_639_RAND_14823686612227949443.json
  • test3_IDX_63_RAND_503146347793518859.json
  • test3_IDX_640_RAND_8746956570850301039.json
  • test3_IDX_642_RAND_9573810261696478473.json
  • test3_IDX_645_RAND_15420852008475892894.json
  • test3_IDX_648_RAND_7163458309829077906.json
  • test3_IDX_649_RAND_13516994752365036715.json
  • test3_IDX_64_RAND_11732237327808738464.json
  • test3_IDX_650_RAND_10759427259823287686.json
  • test3_IDX_651_RAND_3973887187871648594.json
  • test3_IDX_653_RAND_13487855705732966760.json
  • test3_IDX_655_RAND_13534234469544148903.json
  • test3_IDX_656_RAND_14209497873131529462.json
  • test3_IDX_657_RAND_15406512771161192601.json
  • test3_IDX_658_RAND_8500813297106507473.json
  • test3_IDX_660_RAND_12931916078685654453.json
  • test3_IDX_661_RAND_1586056743276262670.json
  • test3_IDX_662_RAND_11517785951247522445.json
  • test3_IDX_665_RAND_4897534522283758168.json
  • test3_IDX_666_RAND_927244856966281242.json
  • test3_IDX_667_RAND_10254868975205530346.json
  • test3_IDX_669_RAND_1201352848822572196.json
  • test3_IDX_671_RAND_8632482235087060478.json
  • test3_IDX_672_RAND_10910925052464204224.json
  • test3_IDX_673_RAND_4099952430571517785.json
  • test3_IDX_675_RAND_13710899235762236073.json
  • test3_IDX_676_RAND_5785157524732887958.json
  • test3_IDX_680_RAND_8003060445421813913.json
  • test3_IDX_683_RAND_801252406797686530.json
  • test3_IDX_684_RAND_17916286590070029267.json
  • test3_IDX_686_RAND_15070687470855899345.json
  • test3_IDX_687_RAND_2664094484472936417.json
  • test3_IDX_689_RAND_4618093416646572692.json
  • test3_IDX_68_RAND_1784357243202506752.json
  • test3_IDX_690_RAND_8255119012986373849.json
  • test3_IDX_691_RAND_5999979237046729430.json
  • test3_IDX_693_RAND_4838919050455582098.json
  • test3_IDX_694_RAND_3091849243466258273.json
  • test3_IDX_695_RAND_16791082605446857147.json
  • test3_IDX_696_RAND_2449151192892208004.json
  • test3_IDX_697_RAND_17171118266933865822.json
  • test3_IDX_69_RAND_7642326342342377434.json
  • test3_IDX_700_RAND_10069213503108436974.json
  • test3_IDX_701_RAND_8122999277623946410.json
  • test3_IDX_704_RAND_14939121795663509342.json
  • test3_IDX_705_RAND_2214707279390855974.json
  • test3_IDX_706_RAND_7185264786242184367.json
  • test3_IDX_707_RAND_1681212734593386788.json
  • test3_IDX_708_RAND_10648712721277893451.json
  • test3_IDX_709_RAND_327775388834989437.json
  • test3_IDX_710_RAND_9479277601782243654.json
  • test3_IDX_711_RAND_1211330230605410633.json
  • test3_IDX_715_RAND_6908370745374424551.json
  • test3_IDX_717_RAND_15510719417726139685.json
  • test3_IDX_718_RAND_9195000211476260519.json
  • test3_IDX_719_RAND_16184416393336011231.json
  • test3_IDX_71_RAND_15862817683113994742.json
  • test3_IDX_720_RAND_12625478992715998369.json
  • test3_IDX_722_RAND_10742573557499096160.json
  • test3_IDX_724_RAND_369073426216176002.json
  • test3_IDX_727_RAND_5451493581216689124.json
  • test3_IDX_728_RAND_12225135687699204892.json
  • test3_IDX_729_RAND_5406276948995337888.json
  • test3_IDX_72_RAND_4598263687280085861.json
  • test3_IDX_730_RAND_14323798956205821435.json
  • test3_IDX_731_RAND_9163201270046486005.json
  • test3_IDX_732_RAND_2709202985996526551.json
  • test3_IDX_733_RAND_8850058973746469863.json
  • test3_IDX_735_RAND_8580441149849823064.json
  • test3_IDX_739_RAND_18183355342219021649.json
  • test3_IDX_73_RAND_17420094235227490515.json
  • test3_IDX_740_RAND_12171191349266080467.json
  • test3_IDX_743_RAND_13914953966810403547.json
  • test3_IDX_744_RAND_2256507152223471093.json
  • test3_IDX_745_RAND_11741674524014805896.json
  • test3_IDX_749_RAND_5606977461209390177.json
  • test3_IDX_751_RAND_16554475386760198755.json
  • test3_IDX_752_RAND_15719244188042057685.json
  • test3_IDX_753_RAND_6889818165272315356.json
  • test3_IDX_754_RAND_8859441841824442515.json
  • test3_IDX_755_RAND_10906933154882577662.json
  • test3_IDX_756_RAND_2215883984224081204.json
  • test3_IDX_757_RAND_3536409031485894731.json
  • test3_IDX_758_RAND_12208136450488396831.json
  • test3_IDX_759_RAND_2542223689960704499.json
  • test3_IDX_75_RAND_9729476993456380982.json
  • test3_IDX_761_RAND_11023590864547800088.json
  • test3_IDX_762_RAND_9671670594596465578.json
  • test3_IDX_763_RAND_18076910394801111789.json
  • test3_IDX_764_RAND_15006902289018155513.json
  • test3_IDX_766_RAND_1810405499005360909.json
  • test3_IDX_768_RAND_545332138373637849.json
  • test3_IDX_76_RAND_10638730741535466922.json
  • test3_IDX_770_RAND_10261819384584305950.json
  • test3_IDX_771_RAND_13487881932153078600.json
  • test3_IDX_773_RAND_10498426196593301011.json
  • test3_IDX_774_RAND_6112390831741020166.json
  • test3_IDX_776_RAND_3667292436090561009.json
  • test3_IDX_777_RAND_4704818406911650495.json
  • test3_IDX_778_RAND_8611030219666700867.json
  • test3_IDX_779_RAND_3376349868335673837.json
  • test3_IDX_780_RAND_8058893321593467653.json
  • test3_IDX_781_RAND_425861291578380156.json
  • test3_IDX_783_RAND_14169247756965819866.json
  • test3_IDX_785_RAND_16767201541373948599.json
  • test3_IDX_786_RAND_4855785691012603860.json
  • test3_IDX_787_RAND_9103226595485358808.json
  • test3_IDX_788_RAND_9315666175299512227.json
  • test3_IDX_789_RAND_17182702175962627363.json
  • test3_IDX_790_RAND_2003362546696227757.json
  • test3_IDX_791_RAND_14513307872734645419.json
  • test3_IDX_796_RAND_13336423739661378014.json
  • test3_IDX_797_RAND_10974652145715297808.json
  • test3_IDX_799_RAND_17467701253441716246.json
  • test3_IDX_7_RAND_3074146668540745689.json
  • test3_IDX_802_RAND_14724521838119973899.json
  • test3_IDX_803_RAND_3817238613217362775.json
  • test3_IDX_804_RAND_8751353435014588597.json
  • test3_IDX_805_RAND_16406400912683377949.json
  • test3_IDX_806_RAND_3612977429477814775.json
  • test3_IDX_807_RAND_2283630013472363393.json
  • test3_IDX_809_RAND_9849558218677041440.json
  • test3_IDX_80_RAND_3567336460601873584.json
  • test3_IDX_811_RAND_12433170055040179778.json
  • test3_IDX_812_RAND_7772075325086424607.json
  • test3_IDX_813_RAND_9169108628944352975.json
  • test3_IDX_815_RAND_4047104817585154180.json
  • test3_IDX_819_RAND_7143637783379045643.json
  • test3_IDX_81_RAND_12171893598383239596.json
  • test3_IDX_820_RAND_4722388014277304010.json
  • test3_IDX_822_RAND_17578033259643851032.json
  • test3_IDX_823_RAND_12411568854188017467.json
  • test3_IDX_826_RAND_16815682790222240286.json
  • test3_IDX_829_RAND_13319786717071800408.json
  • test3_IDX_831_RAND_5522986841011665633.json
  • test3_IDX_833_RAND_11977118312872121024.json
  • test3_IDX_836_RAND_14460376423318416822.json
  • test3_IDX_837_RAND_5173066270978369927.json
  • test3_IDX_839_RAND_7257491765646112376.json
  • test3_IDX_840_RAND_492598138378556636.json
  • test3_IDX_841_RAND_13223667929343931470.json
  • test3_IDX_842_RAND_9541765449735711754.json
  • test3_IDX_844_RAND_7696470986773755834.json
  • test3_IDX_845_RAND_2422398099861532426.json
  • test3_IDX_846_RAND_10902251373655115423.json
  • test3_IDX_848_RAND_5073679510820707442.json
  • test3_IDX_84_RAND_16569898697966009481.json
  • test3_IDX_851_RAND_12880569206415782327.json
  • test3_IDX_852_RAND_1482576163784779220.json
  • test3_IDX_854_RAND_1998003383593040092.json
  • test3_IDX_859_RAND_14240082020489338466.json
  • test3_IDX_85_RAND_13792343838157871726.json
  • test3_IDX_860_RAND_6199016567038190673.json
  • test3_IDX_861_RAND_5627639480747271956.json
  • test3_IDX_863_RAND_11853435330925213076.json
  • test3_IDX_865_RAND_9070375944085688486.json
  • test3_IDX_866_RAND_7106794829713706269.json
  • test3_IDX_867_RAND_3834939107655600519.json
  • test3_IDX_868_RAND_8557905104123107226.json
  • test3_IDX_869_RAND_131644268753779291.json
  • test3_IDX_86_RAND_4050309031954761115.json
  • test3_IDX_870_RAND_1659586706220768190.json
  • test3_IDX_871_RAND_5062462278133832723.json
  • test3_IDX_873_RAND_14233118488312350551.json
  • test3_IDX_874_RAND_5803090018784188590.json
  • test3_IDX_875_RAND_4916460545749609275.json
  • test3_IDX_876_RAND_5324773060234933731.json
  • test3_IDX_877_RAND_302541688484673098.json
  • test3_IDX_878_RAND_14488167141875384038.json
  • test3_IDX_879_RAND_17362974406822912329.json
  • test3_IDX_87_RAND_3126791548630821255.json
  • test3_IDX_880_RAND_7288899603070469367.json
  • test3_IDX_885_RAND_16047829363275745722.json
  • test3_IDX_886_RAND_13565406000702339774.json
  • test3_IDX_887_RAND_18244780017398686310.json
  • test3_IDX_888_RAND_17466703455111045893.json
  • test3_IDX_88_RAND_15920956254597086906.json
  • test3_IDX_891_RAND_5267163360220743168.json
  • test3_IDX_896_RAND_16827306440313509468.json
  • test3_IDX_897_RAND_3447209575308200465.json
  • test3_IDX_899_RAND_7904129220195257137.json
  • test3_IDX_89_RAND_12930516939335039725.json
  • test3_IDX_902_RAND_16336071890001742188.json
  • test3_IDX_903_RAND_9978669188168114244.json
  • test3_IDX_905_RAND_17621098318400229638.json
  • test3_IDX_906_RAND_16961585565541684572.json
  • test3_IDX_907_RAND_6979745492291129700.json
  • test3_IDX_908_RAND_14224728237418747280.json
  • test3_IDX_90_RAND_859117436958178945.json
  • test3_IDX_910_RAND_1095566651116679895.json
  • test3_IDX_911_RAND_12498461894855729613.json
  • test3_IDX_912_RAND_9551504789737453573.json
  • test3_IDX_913_RAND_1060065443968934423.json
  • test3_IDX_914_RAND_17682602426940887604.json
  • test3_IDX_916_RAND_11173664385589118078.json
  • test3_IDX_918_RAND_8125152922365130040.json
  • test3_IDX_919_RAND_3571414792769738959.json
  • test3_IDX_920_RAND_10526429233921737443.json
  • test3_IDX_921_RAND_597393223002867963.json
  • test3_IDX_922_RAND_18032791371694282301.json
  • test3_IDX_924_RAND_3675841285943480052.json
  • test3_IDX_927_RAND_5788825125771810500.json
  • test3_IDX_929_RAND_16753436325542823295.json
  • test3_IDX_931_RAND_15486420398472522473.json
  • test3_IDX_934_RAND_5555571027293671037.json
  • test3_IDX_936_RAND_13752473084377603169.json
  • test3_IDX_937_RAND_13965227107912617563.json
  • test3_IDX_938_RAND_7730575842376686837.json
  • test3_IDX_93_RAND_15990986792748604086.json
  • test3_IDX_940_RAND_7498488687724616134.json
  • test3_IDX_942_RAND_9488937450345246684.json
  • test3_IDX_943_RAND_9455713726553434467.json
  • test3_IDX_947_RAND_13244837680478367382.json
  • test3_IDX_949_RAND_1970324939444000325.json
  • test3_IDX_94_RAND_18436050926255167800.json
  • test3_IDX_951_RAND_4659620678410689131.json
  • test3_IDX_952_RAND_860361005034321274.json
  • test3_IDX_953_RAND_10884380913323946502.json
  • test3_IDX_955_RAND_9530787828618087027.json
  • test3_IDX_957_RAND_12155553883887839214.json
  • test3_IDX_958_RAND_6421065039376005677.json
  • test3_IDX_960_RAND_1272310143493352411.json
  • test3_IDX_962_RAND_5085586107063253191.json
  • test3_IDX_963_RAND_539247604338067187.json
  • test3_IDX_964_RAND_1118178288293735600.json
  • test3_IDX_965_RAND_11653990737552407801.json
  • test3_IDX_968_RAND_391274544060664075.json
  • test3_IDX_969_RAND_9899146180846668402.json
  • test3_IDX_96_RAND_1894973443382169464.json
  • test3_IDX_970_RAND_10571386755195651765.json
  • test3_IDX_971_RAND_7004356958317225819.json
  • test3_IDX_972_RAND_5439253985148840470.json
  • test3_IDX_973_RAND_11062970146630301341.json
  • test3_IDX_975_RAND_3809937644148569079.json
  • test3_IDX_976_RAND_15352413218926309795.json
  • test3_IDX_977_RAND_5272195903009545320.json
  • test3_IDX_978_RAND_5211508466431687971.json
  • test3_IDX_979_RAND_1383258368021794908.json
  • test3_IDX_97_RAND_11008920185471097395.json
  • test3_IDX_980_RAND_554917678000707176.json
  • test3_IDX_981_RAND_17581786601843812586.json
  • test3_IDX_982_RAND_12722310360952950283.json
  • test3_IDX_985_RAND_15372845551192575759.json
  • test3_IDX_987_RAND_501918207471743389.json
  • test3_IDX_988_RAND_4887411763982868487.json
  • test3_IDX_990_RAND_9464530900939103031.json
  • test3_IDX_991_RAND_7586642635152754775.json
  • test3_IDX_992_RAND_6571085823422292699.json
  • test3_IDX_993_RAND_3104790805055276865.json
  • test3_IDX_995_RAND_2177033777227199832.json
  • test3_IDX_996_RAND_3162109434638652591.json
  • test3_IDX_997_RAND_14828509518322578684.json
  • test3_IDX_998_RAND_10507372197054128122.json
  • test3_IDX_999_RAND_15956154464897384328.json
  • test3_IDX_99_RAND_17955623646666200645.json
  • test3_IDX_9_RAND_6192662494859085182.json
  • test6_IDX_360_RAND_97626467826299750.json
  • test6_IDX_612_RAND_7758809930081403651.json
  • test6_IDX_893_RAND_14465612796793747054.json
  • test6_IDX_904_RAND_15509892842403469546.json
  • test6_IDX_942_RAND_8300449238848842066.json
  • test7_IDX_215_RAND_17316214414120019282.json
  • test7_IDX_230_RAND_7756202844873260027.json
  • test7_IDX_243_RAND_15648204528338872716.json
  • test7_IDX_571_RAND_14365720227501112610.json
  • test7_IDX_683_RAND_4049375865085885130.json
  • test7_IDX_801_RAND_15785303483832959657.json
  • test7_IDX_805_RAND_10492539786746256008.json
  • test7_IDX_865_RAND_9229590579143984030.json
  • test7_IDX_910_RAND_10383292430755345438.json
  • test7_IDX_915_RAND_9299323800057810142.json
  • test7_IDX_919_RAND_12474839359530954191.json
  • test7_IDX_950_RAND_17538628077640190506.json
  • test9_IDX_135_RAND_12722319039069386985.json
  • test9_IDX_152_RAND_16351235136498886552.json
  • test9_IDX_207_RAND_6442145524277313594.json
  • test9_IDX_245_RAND_313505460077303072.json
  • test9_IDX_743_RAND_6211786878291024908.json
  • test9_IDX_974_RAND_12456375848854309266.json
  • test_IDX_108_RAND_1275192649404679881.json
  • test_IDX_112_RAND_10736107084957087282.json
  • test_IDX_12_RAND_8668734679180933315.json
  • test_IDX_142_RAND_14376531888527628806.json
  • test_IDX_143_RAND_1591427568541494677.json
  • test_IDX_147_RAND_13100137458239388500.json
  • test_IDX_165_RAND_7064611208571699000.json
  • test_IDX_189_RAND_3830472405938241568.json
  • test_IDX_213_RAND_2874633611742771339.json
  • test_IDX_225_RAND_14285846035306602619.json
  • test_IDX_229_RAND_15945406762434342087.json
  • test_IDX_243_RAND_5750632219675554045.json
  • test_IDX_264_RAND_2714315540400731957.json
  • test_IDX_279_RAND_9874228314082964413.json
  • test_IDX_295_RAND_787150099830323955.json
  • test_IDX_298_RAND_11553011600060896756.json
  • test_IDX_327_RAND_13043241544072782647.json
  • test_IDX_333_RAND_9148512686077949194.json
  • test_IDX_339_RAND_11526547701917382746.json
  • test_IDX_341_RAND_5346225765414581258.json
  • test_IDX_347_RAND_4581997097283135351.json
  • test_IDX_349_RAND_11571159244633715064.json
  • test_IDX_365_RAND_4587186413364075974.json
  • test_IDX_368_RAND_15982925261025973683.json
  • test_IDX_379_RAND_6502509576509311415.json
  • test_IDX_384_RAND_12960825027969416980.json
  • test_IDX_391_RAND_12790362016999331788.json
  • test_IDX_410_RAND_13712514958554525260.json
  • test_IDX_440_RAND_10413303825464761315.json
  • test_IDX_444_RAND_10276877623487956521.json
  • test_IDX_46_RAND_2014331388889509374.json
  • test_IDX_509_RAND_5438525844205194781.json
  • test_IDX_529_RAND_960424324759219794.json
  • test_IDX_558_RAND_17468909795029210210.json
  • test_IDX_559_RAND_7331183143233617145.json
  • test_IDX_564_RAND_12747516565659879643.json
  • test_IDX_586_RAND_14236045641860840010.json
  • test_IDX_588_RAND_13915592200034440310.json
  • test_IDX_592_RAND_16685484429278177882.json
  • test_IDX_604_RAND_14881358018908102458.json
  • test_IDX_606_RAND_9411874542897427879.json
  • test_IDX_653_RAND_11626324777566286765.json
  • test_IDX_655_RAND_8676334722083625316.json
  • test_IDX_665_RAND_3636741149751025226.json
  • test_IDX_666_RAND_6197313710501342641.json
  • test_IDX_685_RAND_9666945229875513077.json
  • test_IDX_708_RAND_9233817409776948508.json
  • test_IDX_714_RAND_11153389787243958634.json
  • test_IDX_768_RAND_17321608248530138161.json
  • test_IDX_814_RAND_15754660503377692751.json
  • test_IDX_836_RAND_7019143389916478132.json
  • test_IDX_865_RAND_14766061800312774067.json
  • test_IDX_878_RAND_11528798867557542152.json
  • test_IDX_904_RAND_11106923984968852608.json
  • test_IDX_928_RAND_2640734728838469885.json
  • test_IDX_936_RAND_2456369153169058136.json
  • test_IDX_939_RAND_8477539562618958608.json
  • test_IDX_93_RAND_6394146656630731698.json
  • test_IDX_968_RAND_10335837535089831418.json
  • test_IDX_984_RAND_1864499262634970735.json

hermet pushed a commit that referenced this issue Mar 29, 2024
When lottie is broken and provides invalid gradient, the program crashes in segmentation fault.

At that time, in the `populate` function, `ColorStop& color` doesn't have `input` but tries to use it.

Added checking nullptr logic. The function `populate` will not proceed and return 0 in that case.

related issue: #2072
hermet pushed a commit that referenced this issue Mar 29, 2024
This change is better for stability. Returns `None` if the `mode` attribute cannot be parsed.

related issue: #2072
@qarmin
Copy link
Contributor Author

qarmin commented Apr 3, 2024

Recent version on Ubuntu 23.10 for this json files -
BrokenLottie.zip with AddressSanitizer prints sometimes(1/4 times) infinite amount of AddressSanitizer:DEADLYSIGNAL

with ThreadSanitizer prints most of the time unexpected memory mapping

Screenshot from 2024-04-03 12-11-39

Valgrind not shows any problems

@hermet hermet modified the milestones: 0.13, 0.14 Apr 5, 2024
hermet pushed a commit that referenced this issue Apr 5, 2024
When image data fails to load or image parsing fails,
the id is leaked without being assigned to the name.
To prevent that, free id value when obj is nullptr.

related issue: #2072
BrokenLottie.7z/test3_IDX_130_RAND_18289244608080059871.json
BrokenLottie.7z/test3_IDX_131_RAND_7772102071213376276.json
BrokenLottie.7z/test3_IDX_132_RAND_3072617087893397532.json
BrokenLottie.7z/test3_IDX_134_RAND_17738488813555566674.json
BrokenLottie.7z/test3_IDX_137_RAND_13903188963759129023.json
BrokenLottie.7z/test3_IDX_138_RAND_1645404078965858130.json
hermet pushed a commit that referenced this issue Apr 5, 2024
When lottie is broken and provides invalid gradient, the program crashes in segmentation fault.

At that time, in the `populate` function, `ColorStop& color` doesn't have `input` but tries to use it.

Added checking nullptr logic. The function `populate` will not proceed and return 0 in that case.

related issue: #2072
hermet pushed a commit that referenced this issue Apr 5, 2024
This change is better for stability. Returns `None` if the `mode` attribute cannot be parsed.

related issue: #2072
hermet pushed a commit that referenced this issue Apr 6, 2024
When image data fails to load or image parsing fails,
the id is leaked without being assigned to the name.
To prevent that, free id value when obj is nullptr.

related issue: #2072
BrokenLottie.7z/test3_IDX_130_RAND_18289244608080059871.json
BrokenLottie.7z/test3_IDX_131_RAND_7772102071213376276.json
BrokenLottie.7z/test3_IDX_132_RAND_3072617087893397532.json
BrokenLottie.7z/test3_IDX_134_RAND_17738488813555566674.json
BrokenLottie.7z/test3_IDX_137_RAND_13903188963759129023.json
BrokenLottie.7z/test3_IDX_138_RAND_1645404078965858130.json
hermet pushed a commit that referenced this issue Apr 6, 2024
When lottie is broken and provides invalid gradient, the program crashes in segmentation fault.

At that time, in the `populate` function, `ColorStop& color` doesn't have `input` but tries to use it.

Added checking nullptr logic. The function `populate` will not proceed and return 0 in that case.

related issue: #2072
hermet pushed a commit that referenced this issue Apr 6, 2024
This change is better for stability. Returns `None` if the `mode` attribute cannot be parsed.

related issue: #2072
@qarmin
Copy link
Contributor Author

qarmin commented Apr 20, 2024

New pack - lottie files.zip

../src/loaders/lottie/tvgLottieProperty.h:371:31: runtime error: reference binding to null pointer of type 'const struct Point'
../src/common/tvgMath.h:174:17: runtime error: member access within null pointer of type 'const struct Point'
AddressSanitizer:DEADLYSIGNAL
=================================================================
==9886==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7f44f18e0d7d bp 0x7ffc218e2b60 sp 0x7ffc218e2a90 T0)
==9886==The signal is caused by a READ memory access.
==9886==Hint: address points to the zero page.
    #0 0x7f44f18e0d7d in operator- ../src/common/tvgMath.h:174
    #1 0x7f44f18e0d7d in mathLerp<tvg::Point> ../src/common/tvgMath.h:205
    #2 0x7f44f19010c8 in LottiePathSet::operator()(float, tvg::Array<tvg::PathCommand>&, tvg::Array<tvg::Point>&, tvg::Matrix*) ../src/loaders/lottie/tvgLottieProperty.h:371
    #3 0x7f44f18f2220 in _updatePath ../src/loaders/lottie/tvgLottieBuilder.cpp:526
    #4 0x7f44f18f2220 in _updateChildren ../src/loaders/lottie/tvgLottieBuilder.cpp:946
    #5 0x7f44f18ee9c2 in _updateGroup ../src/loaders/lottie/tvgLottieBuilder.cpp:240
    #6 0x7f44f18ee9c2 in _updateChildren ../src/loaders/lottie/tvgLottieBuilder.cpp:914
    #7 0x7f44f18fc60f in _updateLayer ../src/loaders/lottie/tvgLottieBuilder.cpp:1111
    #8 0x7f44f18fd1fe in LottieBuilder::update(LottieComposition*, float) ../src/loaders/lottie/tvgLottieBuilder.cpp:1229
    #9 0x7f44f190e57f in LottieLoader::run(unsigned int) ../src/loaders/lottie/tvgLottieLoader.cpp:37
    #10 0x7f44f1807726 in tvg::TaskSchedulerImpl::request(tvg::Task*) ../src/renderer/tvgTaskScheduler.cpp:169
    #11 0x7f44f1909c85 in LottieLoader::frame(float) ../src/loaders/lottie/tvgLottieLoader.cpp:328
    #12 0x7f44f17c14cf in tvg::Animation::frame(float) ../src/renderer/tvgAnimation.cpp:52
    #13 0x7f44f196fd9d in tvg::GifSaver::run(unsigned int) ../src/savers/gif/tvgGifSaver.cpp:70
    #14 0x7f44f1807726 in tvg::TaskSchedulerImpl::request(tvg::Task*) ../src/renderer/tvgTaskScheduler.cpp:169
    #15 0x7f44f196d5b7 in tvg::GifSaver::save(tvg::Animation*, tvg::Paint*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int) ../src/savers/gif/tvgGifSaver.cpp:148
    #16 0x7f44f17f5c55 in tvg::Saver::save(std::unique_ptr<tvg::Animation, std::default_delete<tvg::Animation> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int) ../src/renderer/tvgSaver.cpp:175
../src/common/tvgCompressor.cpp:458:51: runtime error: index 18446744073709551611 out of bounds for type 'char [256]'
=================================================================
==304835==ERROR: AddressSanitizer: global-buffer-overflow on address 0x7fc7c9d83c9b at pc 0x7fc7c9c78c28 bp 0x7fffe38e0b40 sp 0x7fffe38e0b30
READ of size 1 at 0x7fc7c9d83c9b thread T0
    #0 0x7fc7c9c78c27 in tvg::b64Decode(char const*, unsigned long, char**) ../src/common/tvgCompressor.cpp:458
    #1 0x7fc7c9d2d716 in LottieParser::parseImage(char const*, char const*, bool) ../src/loaders/lottie/tvgLottieParser.cpp:875
    #2 0x7fc7c9d46644 in LottieParser::parseAsset() ../src/loaders/lottie/tvgLottieParser.cpp:916
    #3 0x7fc7c9d46871 in LottieParser::parseAssets() ../src/loaders/lottie/tvgLottieParser.cpp:945
    #4 0x7fc7c9d47972 in LottieParser::parse() ../src/loaders/lottie/tvgLottieParser.cpp:1337
    #5 0x7fc7c9d0e6db in LottieLoader::run(unsigned int) ../src/loaders/lottie/tvgLottieLoader.cpp:41
    #6 0x7fc7c9d0b6fd in LottieLoader::header() ../src/loaders/lottie/tvgLottieLoader.cpp:75
    #7 0x7fc7c9bd0775 in LoaderMgr::loader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ../src/renderer/tvgLoader.cpp:307
    #8 0x7fc7c9bf0b9b in tvg::Picture::Impl::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../src/renderer/tvgPicture.h:152
    #9 0x7fc7c9bf0b9b in tvg::Picture::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../src/renderer/tvgPicture.cpp:175
    #10 0x557ec6d6fc62 in App::convert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ../src/tools/lottie2gif/lottie2gif.cpp:74
    #11 0x557ec6d72e17 in App::convert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ../src/tools/lottie2gif/lottie2gif.cpp:102
    #12 0x557ec6d76276 in App::setup(int, char**) ../src/tools/lottie2gif/lottie2gif.cpp:269
=================================================================
==266361==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 6000 byte(s) in 9 object(s) allocated from:
    #0 0x7fa4400b4c38 in __interceptor_realloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:164
    #1 0x7fa43fa5a0ab in _genSpan ../src/renderer/sw_engine/tvgSwRle.cpp:314
    #2 0x7fa43fa6099f in _sweep ../src/renderer/sw_engine/tvgSwRle.cpp:431
    #3 0x7fa43fa6099f in rleRender(SwRleData*, SwOutline const*, SwBBox const&, bool) ../src/renderer/sw_engine/tvgSwRle.cpp:991
    #4 0x7fa43fa6ae67 in shapeGenStrokeRle(SwShape*, tvg::RenderShape const*, tvg::Matrix const*, SwBBox const&, SwBBox&, SwMpool*, unsigned int) ../src/renderer/sw_engine/tvgSwShape.cpp:614
    #5 0x7fa43fa5503b in SwShapeTask::run(unsigned int) ../src/renderer/sw_engine/tvgSwRenderer.cpp:167
    #6 0x7fa43fa07726 in tvg::TaskSchedulerImpl::request(tvg::Task*) ../src/renderer/tvgTaskScheduler.cpp:169
    #7 0x7fa43fa4eba0 in tvg::SwRenderer::prepareCommon(SwTask*, tvg::RenderTransform const*, tvg::Array<void*> const&, unsigned char, tvg::RenderUpdateFlag) ../src/renderer/sw_engine/tvgSwRenderer.cpp:761
    #8 0x7fa43f9e0ba7 in tvg::Shape::Impl::update(tvg::RenderMethod*, tvg::RenderTransform const*, tvg::Array<void*>&, unsigned char, tvg::RenderUpdateFlag, bool) ../src/renderer/tvgShape.h:94
    #9 0x7fa43f9e0ba7 in tvg::Paint::Impl::update(tvg::RenderMethod*, tvg::RenderTransform const*, tvg::Array<void*>&, unsigned char, tvg::RenderUpdateFlag, bool) ../src/renderer/tvgPaint.cpp:290
    #10 0x7fa43f9ec064 in tvg::Scene::Impl::update(tvg::RenderMethod*, tvg::RenderTransform const*, tvg::Array<void*>&, unsigned char, tvg::RenderUpdateFlag, bool) ../src/renderer/tvgScene.h:122
    #11 0x7fa43f9e0e37 in tvg::Paint::Impl::update(tvg::RenderMethod*, tvg::RenderTransform const*, tvg::Array<void*>&, unsigned char, tvg::RenderUpdateFlag, bool) ../src/renderer/tvgPaint.cpp:290
    #12 0x7fa43f9ec064 in tvg::Scene::Impl::update(tvg::RenderMethod*, tvg::RenderTransform const*, tvg::Array<void*>&, unsigned char, tvg::RenderUpdateFlag, bool) ../src/renderer/tvgScene.h:122
    #13 0x7fa43f9e0e37 in tvg::Paint::Impl::update(tvg::RenderMethod*, tvg::RenderTransform const*, tvg::Array<void*>&, unsigned char, tvg::RenderUpdateFlag, bool) ../src/renderer/tvgPaint.cpp:290
    #14 0x7fa43f9e182b in tvg::Picture::Impl::update(tvg::RenderMethod*, tvg::RenderTransform const*, tvg::Array<void*>&, unsigned char, tvg::RenderUpdateFlag, bool) ../src/renderer/tvgPicture.h:106
    #15 0x7fa43f9e182b in tvg::Paint::Impl::update(tvg::RenderMethod*, tvg::RenderTransform const*, tvg::Array<void*>&, unsigned char, tvg::RenderUpdateFlag, bool) ../src/renderer/tvgPaint.cpp:290
    #16 0x7fa43f9c566e in tvg::Canvas::Impl::update(tvg::Paint*, bool) (/home/runner/work/SVG-regression-finder/SVG-regression-finder/thorvg/build/src/tools/lottie2gif/../../libthorvg.so.0+0x3c566e)

@hermet hermet unassigned JSUYA and tinyjin May 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working lottie Lottie animation showstopper Regression bugs / Critical errors
Projects
Status: In Progress
Development

No branches or pull requests

4 participants