From 7defc521be20d974893241913890df9cf9e9a21e Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Thu, 21 May 2020 01:37:48 +0100 Subject: [PATCH] LibWeb: Ignore non-finite args in CanvasRenderingContext2D.{scale,translate}() --- .../Bindings/CanvasRenderingContext2DWrapper.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Libraries/LibWeb/Bindings/CanvasRenderingContext2DWrapper.cpp b/Libraries/LibWeb/Bindings/CanvasRenderingContext2DWrapper.cpp index 024e37f3634..197d0166b78 100644 --- a/Libraries/LibWeb/Bindings/CanvasRenderingContext2DWrapper.cpp +++ b/Libraries/LibWeb/Bindings/CanvasRenderingContext2DWrapper.cpp @@ -160,13 +160,14 @@ JS::Value CanvasRenderingContext2DWrapper::scale(JS::Interpreter& interpreter) if (!impl) return {}; if (interpreter.argument_count() >= 2) { - auto sx = interpreter.argument(0).to_double(interpreter); + auto sx = interpreter.argument(0).to_number(interpreter); if (interpreter.exception()) return {}; - auto sy = interpreter.argument(1).to_double(interpreter); + auto sy = interpreter.argument(1).to_number(interpreter); if (interpreter.exception()) return {}; - impl->scale(sx, sy); + if (sx.is_finite_number() && sy.is_finite_number()) + impl->scale(sx.as_double(), sy.as_double()); } return JS::js_undefined(); } @@ -177,13 +178,14 @@ JS::Value CanvasRenderingContext2DWrapper::translate(JS::Interpreter& interprete if (!impl) return {}; if (interpreter.argument_count() >= 2) { - auto tx = interpreter.argument(0).to_double(interpreter); + auto tx = interpreter.argument(0).to_number(interpreter); if (interpreter.exception()) return {}; - auto ty = interpreter.argument(1).to_double(interpreter); + auto ty = interpreter.argument(1).to_number(interpreter); if (interpreter.exception()) return {}; - impl->translate(tx, ty); + if (tx.is_finite_number() && ty.is_finite_number()) + impl->translate(tx.as_double(), ty.as_double()); } return JS::js_undefined(); }