diff options
| author | 2023-03-17 19:35:57 +0100 | |
|---|---|---|
| committer | 2023-03-17 19:35:57 +0100 | |
| commit | c8f637fc16099c70836574425a6df20a3e2fa801 (patch) | |
| tree | 44fc1c8cbad8ac48d6943acf47f91746997dd21f /tiny_skia | |
| parent | caf2836b1b15bff6e8a2ea72441d67f297eb8707 (diff) | |
| download | iced-c8f637fc16099c70836574425a6df20a3e2fa801.tar.gz iced-c8f637fc16099c70836574425a6df20a3e2fa801.tar.bz2 iced-c8f637fc16099c70836574425a6df20a3e2fa801.zip | |
Fix panic rendering an out of bounds clip in `iced_tiny_skia`
Diffstat (limited to '')
| -rw-r--r-- | tiny_skia/src/backend.rs | 8 | 
1 files changed, 8 insertions, 0 deletions
| diff --git a/tiny_skia/src/backend.rs b/tiny_skia/src/backend.rs index ba063f4e..271d026f 100644 --- a/tiny_skia/src/backend.rs +++ b/tiny_skia/src/backend.rs @@ -267,6 +267,14 @@ impl Backend {              Primitive::Clip { bounds, content } => {                  let bounds = (*bounds + translation) * scale_factor; +                if bounds.x + bounds.width <= 0.0 +                    || bounds.y + bounds.height <= 0.0 +                    || bounds.x as u32 >= pixels.width() +                    || bounds.y as u32 >= pixels.height() +                { +                    return; +                } +                  adjust_clip_mask(clip_mask, pixels, bounds);                  self.draw_primitive( | 
