From ecc68b28cd0e6f5ea72b70f4e5a5b6659aa24490 Mon Sep 17 00:00:00 2001 From: lrxin Date: Wed, 15 Oct 2025 11:17:20 +0800 Subject: [PATCH 1/2] fix: the vulnerability in ZoomedScene.__init__(..) where zoomed_camera_image_mobject_config cannot be configured --- manim/mobject/types/image_mobject.py | 7 +++---- manim/scene/zoomed_scene.py | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/manim/mobject/types/image_mobject.py b/manim/mobject/types/image_mobject.py index d2cb1a3f0e..223905ea0b 100644 --- a/manim/mobject/types/image_mobject.py +++ b/manim/mobject/types/image_mobject.py @@ -312,8 +312,7 @@ def __init__( if default_display_frame_config is None: default_display_frame_config = { "stroke_width": 3, - "stroke_color": WHITE, - "buff": 0, + "stroke_color": WHITE, } self.default_display_frame_config = default_display_frame_config self.pixel_array = self.camera.pixel_array @@ -325,9 +324,9 @@ def get_pixel_array(self): return self.pixel_array def add_display_frame(self, **kwargs: Any) -> Self: - config = dict(self.default_display_frame_config) + config = self.default_display_frame_config config.update(kwargs) - self.display_frame = SurroundingRectangle(self, **config) + self.display_frame = SurroundingRectangle(self, buff = 0,**config) self.add(self.display_frame) return self diff --git a/manim/scene/zoomed_scene.py b/manim/scene/zoomed_scene.py index 57c89b1ad6..3c5b7e9715 100644 --- a/manim/scene/zoomed_scene.py +++ b/manim/scene/zoomed_scene.py @@ -85,7 +85,7 @@ def __init__( "default_frame_stroke_width": 2, "background_opacity": 1, }, - zoomed_camera_image_mobject_config: dict[str, Any] = {}, + zoomed_camera_image_mobject_config: dict[str, Any] = None, zoomed_camera_frame_starting_position: Point3DLike = ORIGIN, zoom_factor: float = 0.15, image_frame_stroke_width: float = 3, @@ -115,7 +115,7 @@ def setup(self) -> None: # Initialize camera and display zoomed_camera = MovingCamera(**self.zoomed_camera_config) zoomed_display = ImageMobjectFromCamera( - zoomed_camera, **self.zoomed_camera_image_mobject_config + zoomed_camera, self.zoomed_camera_image_mobject_config ) zoomed_display.add_display_frame() for mob in zoomed_camera.frame, zoomed_display: From 8e02b7b4e3e2cb59df7ad272131cfc75ba60321a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 15 Oct 2025 03:59:03 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- manim/mobject/types/image_mobject.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manim/mobject/types/image_mobject.py b/manim/mobject/types/image_mobject.py index 223905ea0b..f9c8dbc192 100644 --- a/manim/mobject/types/image_mobject.py +++ b/manim/mobject/types/image_mobject.py @@ -312,7 +312,7 @@ def __init__( if default_display_frame_config is None: default_display_frame_config = { "stroke_width": 3, - "stroke_color": WHITE, + "stroke_color": WHITE, } self.default_display_frame_config = default_display_frame_config self.pixel_array = self.camera.pixel_array @@ -326,7 +326,7 @@ def get_pixel_array(self): def add_display_frame(self, **kwargs: Any) -> Self: config = self.default_display_frame_config config.update(kwargs) - self.display_frame = SurroundingRectangle(self, buff = 0,**config) + self.display_frame = SurroundingRectangle(self, buff=0, **config) self.add(self.display_frame) return self