Clone in a terminal:
Commit 1b39556
Johan Mattsson - 2015-12-20T21:12:33+00:00
1b39556e86ff4035172b75fab3a8a03ddd854b56johan.mattsson.m@gmail.com

Validate XML when importing SVG file

Changed files (2)

Diff

diff --git a/libbirdfont/Glyph.vala b/libbirdfont/Glyph.valaindex bfe5c78..9f42c13 100644--- a/libbirdfont/Glyph.vala+++ b/libbirdfont/Glyph.vala@@ -15,6 +15,7 @@ using Cairo; using Math; using Gee;+using B;  namespace BirdFont { @@ -153,6 +154,13 @@ public class Glyph : FontDisplay { 		set { 			try { 				if (value != null) {+					XmlParser xml = new XmlParser ((!) value);+		 +					if (!xml.validate ()) {+						warning("Invalid SVG data, skipping import.");+						return;+					}+					 					uint8[] svg_array = ((!) value).data; 					svg_drawing = new Rsvg.Handle.from_data (svg_array); 				} else {diff --git a/libbirdfont/OpenFontFormat/SvgTable.vala b/libbirdfont/OpenFontFormat/SvgTable.valaindex d0a56ea..79683a9 100644--- a/libbirdfont/OpenFontFormat/SvgTable.vala+++ b/libbirdfont/OpenFontFormat/SvgTable.vala@@ -70,13 +70,14 @@ public class SvgTable : OtfTable { 		svg_tags = new Gee.ArrayList<Tag> (); 		meta = new Gee.ArrayList<Tag> (); 		xml = new XmlParser (svg_data);-		svg_root_tag = xml.get_root_tag (); 		  		if (!xml.validate ()) { 			warning("Invalid SVG data in TTF table."); 			return; 		} 		+		svg_root_tag = xml.get_root_tag ();+		 		foreach (Tag tag in svg_root_tag) { 			string name = tag.get_name(); 

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112