[librsvg/librsvg-2.44: 1/2] fix : Memory leaks occur when CSS parsing error
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg/librsvg-2.44: 1/2] fix : Memory leaks occur when CSS parsing error
- Date: Wed, 30 Sep 2020 00:24:11 +0000 (UTC)
commit 53bd9898eb3a889b205f41bdfab8317168f1f21a
Author: claus6 <zhangyub uniontech com>
Date: Tue Sep 22 09:46:53 2020 +0800
fix : Memory leaks occur when CSS parsing error
when CSS parsing error,"fn css_error" is called,but it
only print error memsage.In this case,we did not unref the "handler_data.selector",so the memory of
"handler_data.selector" not be freed;
rsvg_internals/src/css.rs | 6 ++++++
1 file changed, 6 insertions(+)
---
diff --git a/rsvg_internals/src/css.rs b/rsvg_internals/src/css.rs
index d0b96270..7fd5a990 100644
--- a/rsvg_internals/src/css.rs
+++ b/rsvg_internals/src/css.rs
@@ -217,6 +217,12 @@ unsafe extern "C" fn css_property(
unsafe extern "C" fn css_error(_a_this: *mut CRDocHandler) {
println!("CSS parsing error");
+
+ let handler_data = get_doc_handler_data(_a_this);
+ if !handler_data.selector.is_null() && ((*(handler_data.selector)).ref_count > 1) {
+ cr_selector_unref(handler_data.selector);
+ handler_data.selector = ptr::null_mut();
+ }
}
unsafe extern "C" fn css_unrecoverable_error(_a_this: *mut CRDocHandler) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]