diff --git a/0003-Fix-malformed-header-processing.patch b/0003-Fix-malformed-header-processing.patch new file mode 100644 index 0000000..34825ab --- /dev/null +++ b/0003-Fix-malformed-header-processing.patch @@ -0,0 +1,98 @@ +From 88d67f8eacdd301d836a6902374dc10e8cc05d57 Mon Sep 17 00:00:00 2001 +From: Stanislav Brabec +Date: Wed, 26 Feb 2025 03:00:18 +0100 +Subject: [PATCH 3/3] Fix malformed header processing + +--- + gettext-tools/src/msgl-header.c | 68 ++++++++++++++++++++++++--------- + 1 file changed, 51 insertions(+), 17 deletions(-) + +diff --git a/gettext-tools/src/msgl-header.c b/gettext-tools/src/msgl-header.c +index 6fe659e73..fb5186a89 100644 +--- a/gettext-tools/src/msgl-header.c ++++ b/gettext-tools/src/msgl-header.c +@@ -397,30 +397,64 @@ message_list_header_list (message_list_ty *mlp) + { + /* We found the correct message. */ + message_ty *mp = mlp->item[j]; ++ ++ /* Test whether the field occurs in the header entry. */ + const char *h = mp->msgstr; ++ + message_list_ty * header = message_list_alloc (false); + int ctr = 0; + + while (*h != '\0') +- { +- char *enh = strchr (h, ':'); +- enh++; +- char * msgid = (char *)XNMALLOC (((enh - h) + 1), char); +- memcpy (msgid, h, enh - h); +- /* Make the string null-terminated. */ +- (msgid)[enh-h] = '\0'; +- h = enh + 1; +- +- enh = strchr (h, '\n'); +- if (enh != NULL) ++ { ++ const char *enh; ++ const char *enhz; ++ const char *sep; ++ const char *value; ++ ++ enh = strchr (h, '\n'); ++ if (enh) ++ { ++ enhz = enh; ++ enh++; ++ } ++ else ++ { ++ /* Missing trailing EOL. */ ++ enh = h + strlen(h); ++ enhz = enh; ++ } ++ ++ sep = strchr (h, ':'); ++ if (sep == NULL || sep >= enhz) ++ { ++ /* Line does not contain ':'. */ ++ sep = enhz; ++ value = enhz; ++ } ++ else ++ { ++ sep++; ++ if (*sep != ' ') ++ /* ' ' missing after ':'. */ ++ value = sep; ++ else ++ value = sep + 1; ++ } ++ ++ char * msgid = (char *)XNMALLOC (((sep - h) + 1), char); ++ memcpy (msgid, h, sep - h); ++ /* Make the string null-terminated. */ ++ msgid[sep-h] = '\0'; ++ char * msgstr = (char *)XNMALLOC (((enhz - value) + 1), char); ++ memcpy (msgstr, value, enhz - value); ++ /* Make the string null-terminated. */ ++ msgstr[enhz-value] = '\0'; ++ ++ if (h != NULL) + { +- char * msgstr = (char *)XNMALLOC (((enh - h) + 1), char); +- memcpy (msgstr, h, enh - h); +- /* Make the string null-terminated. */ +- msgstr[enh-h] = '\0'; + lex_pos_ty pos = {NULL, ctr++}; +- message_list_append (header, message_alloc (NULL, msgid, NULL, msgstr, enh - h, &pos)); +- h = enh + 1; ++ message_list_append (header, message_alloc (NULL, msgid, NULL, msgstr, enhz - value, &pos)); ++ h = enh; + } + else return NULL; + } +-- +2.48.1 + diff --git a/gettext-csharp.changes b/gettext-csharp.changes index ebeab32..57ccd75 100644 --- a/gettext-csharp.changes +++ b/gettext-csharp.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec + +- Fix crash while handling po files with malformed header and + process them properly + (0003-Fix-malformed-header-processing.patch, boo#1227316). + ------------------------------------------------------------------- Tue Jul 16 08:42:20 UTC 2024 - Bernhard Wiedemann diff --git a/gettext-csharp.spec b/gettext-csharp.spec index a734e6e..af0f862 100644 --- a/gettext-csharp.spec +++ b/gettext-csharp.spec @@ -1,7 +1,7 @@ # # spec file for package gettext-csharp # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -47,6 +47,8 @@ Patch13: reproducible.patch # PATCH-FEATURE bsc#1165138 Patch14: 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch Patch15: 0002-msgcat-Merge-headers-when-use-first.patch +# PATCH-FEATURE-FIX-SUSE boo#1227316 -- sbrabec@suse.com +Patch16: 0003-Fix-malformed-header-processing.patch BuildRequires: automake >= 1.14 BuildRequires: fdupes BuildRequires: gcc-c++ diff --git a/gettext-java.changes b/gettext-java.changes index 8270c78..c51283d 100644 --- a/gettext-java.changes +++ b/gettext-java.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec + +- Fix crash while handling po files with malformed header and + process them properly + (0003-Fix-malformed-header-processing.patch, boo#1227316). + ------------------------------------------------------------------- Tue Jul 16 08:42:20 UTC 2024 - Bernhard Wiedemann diff --git a/gettext-java.spec b/gettext-java.spec index 8a2087c..441ccea 100644 --- a/gettext-java.spec +++ b/gettext-java.spec @@ -1,7 +1,7 @@ # # spec file for package gettext-java # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -46,6 +46,8 @@ Patch14: 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch Patch15: 0002-msgcat-Merge-headers-when-use-first.patch # PATCH-FIX-UPSTREAM https://lists.gnu.org/archive/html/bug-gettext/2024-07/msg00021.html Patch16: reproducible-jar.patch +# PATCH-FEATURE-FIX-SUSE boo#1227316 -- sbrabec@suse.com +Patch17: 0003-Fix-malformed-header-processing.patch BuildRequires: automake >= 1.14 BuildRequires: fdupes BuildRequires: gcc-c++ diff --git a/gettext-runtime-mini.changes b/gettext-runtime-mini.changes index 13445ec..b3b2835 100644 --- a/gettext-runtime-mini.changes +++ b/gettext-runtime-mini.changes @@ -1,5 +1,12 @@ ------------------------------------------------------------------- -Thu Sep 12 10:43:43 UTC 2024 - Dan Čermák +Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec + +- Fix crash while handling po files with malformed header and + process them properly + (0003-Fix-malformed-header-processing.patch, boo#1227316). + +------------------------------------------------------------------- +Thu Sep 12 10:43:39 UTC 2024 - Dan Čermák - Move envsubst requires into main package, gettext.sh is not part of gettext-tools, but gettext-runtime (fixes boo#1227070) diff --git a/gettext-runtime-mini.spec b/gettext-runtime-mini.spec index 772feab..f24f9e7 100644 --- a/gettext-runtime-mini.spec +++ b/gettext-runtime-mini.spec @@ -1,7 +1,7 @@ # # spec file for package gettext-runtime-mini # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -79,6 +79,8 @@ Patch13: reproducible.patch # PATCH-FEATURE bsc#1165138 Patch14: 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch Patch15: 0002-msgcat-Merge-headers-when-use-first.patch +# PATCH-FEATURE-FIX-SUSE boo#1227316 -- sbrabec@suse.com +Patch16: 0003-Fix-malformed-header-processing.patch %description This package contains the intl library as well as tools that ease the diff --git a/gettext-runtime.changes b/gettext-runtime.changes index 411f43f..b3b2835 100644 --- a/gettext-runtime.changes +++ b/gettext-runtime.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec + +- Fix crash while handling po files with malformed header and + process them properly + (0003-Fix-malformed-header-processing.patch, boo#1227316). + ------------------------------------------------------------------- Thu Sep 12 10:43:39 UTC 2024 - Dan Čermák diff --git a/gettext-runtime.spec b/gettext-runtime.spec index a484bb0..35dcb3f 100644 --- a/gettext-runtime.spec +++ b/gettext-runtime.spec @@ -1,7 +1,7 @@ # # spec file for package gettext-runtime # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -79,6 +79,8 @@ Patch13: reproducible.patch # PATCH-FEATURE bsc#1165138 Patch14: 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch Patch15: 0002-msgcat-Merge-headers-when-use-first.patch +# PATCH-FEATURE-FIX-SUSE boo#1227316 -- sbrabec@suse.com +Patch16: 0003-Fix-malformed-header-processing.patch %description This package contains the intl library as well as tools that ease the