[librsvg/librsvg-2.50] (#746) - Possible cairo_save() without cairo_restore() in render_layer()



commit fb0f23eeac72ba02f2ae8c3f4caac9720e5f0137
Author: Federico Mena Quintero <federico mena gmail com>
Date:   Thu Jun 3 23:25:47 2021 +0000

    (#746) - Possible cairo_save() without cairo_restore() in render_layer()
    
    The code has a "?" in the call to get_node_or_root, so it could return
    before doing the cairo_restore().
    
    Fixes https://gitlab.gnome.org/GNOME/librsvg/-/issues/746

 rsvg_internals/src/handle.rs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/rsvg_internals/src/handle.rs b/rsvg_internals/src/handle.rs
index 9ec2b552..558fc8ba 100644
--- a/rsvg_internals/src/handle.rs
+++ b/rsvg_internals/src/handle.rs
@@ -240,13 +240,13 @@ impl Handle {
     ) -> Result<(), RenderingError> {
         check_cairo_context(cr)?;
 
-        cr.save();
-
         let node = self.get_node_or_root(id)?;
         let root = self.document.root();
 
         let viewport = Rect::from(*viewport);
 
+        cr.save();
+
         let res = draw_tree(
             DrawingMode::LimitToStack { node, root },
             cr,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]