[packages/itstool] fix for crashes proposed upstream; rel 2
atler
atler at pld-linux.org
Sat Jun 17 14:21:04 CEST 2023
commit 3818fa4a5876c78b9d68428ec8b4c7afcc75e914
Author: Jan Palus <atler at pld-linux.org>
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 <harald at gigawatt.nl>
+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
More information about the pld-cvs-commit
mailing list