Skip to content

lottie: runtime error when a large rotated rectangle is scaled up #3842

@rgprog

Description

@rgprog

ThorVG 1.0.0-pre28 throws RuntimeError: memory access out of bounds when this online viewer draws this Lottie file:

{"assets":[],"ddd":0,"fr":60,"h":180,"ip":0,"layers":[{"ddd":0,"ind":10,"ty":4,"nm":"","ln":"","sr":1,"ks":{"a":{"a":0,"k":[0,0]},"o":{"a":0,"k":100},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":90},"s":{"a":1,"k":[{"t":0,"s":[100,100],"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"t":30,"s":[100,100],"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"t":40,"s":[20000,100],"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"t":60,"s":[20000,100],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}},"ao":0,"ip":0,"op":61,"st":0,"bm":0,"shapes":[{"ty":"rc","hd":false,"p":{"a":0,"k":[45,45]},"r":{"a":0,"k":0},"s":{"a":0,"k":[10000,10000]}},{"ty":"fl","hd":false,"bm":0,"c":{"a":0,"k":[0,0,0]},"r":1,"o":{"a":0,"k":100}}]}],"meta":{},"nm":"","op":60,"v":"5.7.4","w":180}

The Lottie file contains a very large black rectangle (10,000 by 10,000), rotated by 90 degrees, with an animated horizontal scale which linearly increases from 1x to 200x between frames 30 and 40.

I've only seen this bug occur in the software renderer, not the WebGL or WebGPU renderers.

Metadata

Metadata

Assignees

Labels

cpuSoftware render backendrefactoringCode refactoring / Exceptional handlesshowstopperCritical issues

Type

No type

Projects

Status

Done 1.0

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions