commit 3818fa4a5876c78b9d68428ec8b4c7afcc75e914
Author: Jan Palus <[email protected]>
Date:   Sat Jun 17 14:17:51 2023 +0200

    fix for crashes proposed upstream; rel 2
    
    from: https://github.com/itstool/itstool/pull/47

 fix-untrunslated-nodes.patch | 31 +++++++++++++++++++++++++++++++
 itstool.spec                 |  4 +++-
 2 files changed, 34 insertions(+), 1 deletion(-)
---
diff --git a/itstool.spec b/itstool.spec
index 8330805..614477d 100644
--- a/itstool.spec
+++ b/itstool.spec
@@ -2,12 +2,13 @@ Summary:      ITS-based XML translation tool
 Summary(pl.UTF-8):     Narzędzie do tłumaczenia XML-a oparte na ITS
 Name:          itstool
 Version:       2.0.7
-Release:       1
+Release:       2
 License:       GPL v3+
 Group:         Applications/Text
 Source0:       http://files.itstool.org/itstool/%{name}-%{version}.tar.bz2
 # Source0-md5: 267a3bdc72a2d8abb1b824f2ea32ee9b
 Patch0:                %{name}-fix-crash-wrong-encoding.patch
+Patch1:                fix-untrunslated-nodes.patch
 URL:           http://itstool.org/
 BuildRequires: python3
 BuildRequires: python3-libxml2
@@ -30,6 +31,7 @@ komunikaty w pliku PO.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 %configure \
diff --git a/fix-untrunslated-nodes.patch b/fix-untrunslated-nodes.patch
new file mode 100644
index 0000000..83a09e8
--- /dev/null
+++ b/fix-untrunslated-nodes.patch
@@ -0,0 +1,31 @@
+From e9b053be5c50c2bd69442a8484a4c9c371bc3a45 Mon Sep 17 00:00:00 2001
+From: Harald van Dijk <[email protected]>
+Date: Thu, 15 Jun 2023 23:18:11 +0100
+Subject: [PATCH] Fix handling of untranslated nodes
+
+If a translation is missing, get_translated returns the node it was
+called with. But ph_node when passed to get_translated is part of
+another document and cannot just be reparented, it needs to be cloned.
+The reparenting leaves things in an inconsistent state where references
+intended to refer to nodes in the original document no longer do so, and
+they may then be accessed from those references after the new document
+has already been freed.
+
+Fixes bug #36.
+---
+ itstool.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/itstool.in b/itstool.in
+index c21ad4b..a948828 100755
+--- a/itstool.in
++++ b/itstool.in
+@@ -1096,6 +1096,8 @@ class Document (object):
+                         child.replaceNode(newnode)
+                     else:
+                         repl = self.get_translated(ph_node, translations, 
strict=strict, lang=lang)
++                        if repl == ph_node:
++                            repl = repl.copyNode(1)
+                         child.replaceNode(repl)
+                 scan_node(child)
+         try:
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/itstool.git/commitdiff/3818fa4a5876c78b9d68428ec8b4c7afcc75e914

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to