Sync from SUSE:ALP:Source:Standard:1.0 gettext-runtime revision 24aec155594899764983e0355e1b8823
This commit is contained in:
98
0003-Fix-malformed-header-processing.patch
Normal file
98
0003-Fix-malformed-header-processing.patch
Normal file
@@ -0,0 +1,98 @@
|
||||
From 88d67f8eacdd301d836a6902374dc10e8cc05d57 Mon Sep 17 00:00:00 2001
|
||||
From: Stanislav Brabec <sbrabec@suse.com>
|
||||
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
|
||||
|
@@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec <sbrabec@suse.com>
|
||||
|
||||
- Fix crash while handling po files with malformed header and
|
||||
process them properly
|
||||
(0003-Fix-malformed-header-processing.patch, boo#1227316).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 4 13:32:58 UTC 2023 - Frederic Crozat <fcrozat@suse.com>
|
||||
|
||||
|
@@ -48,6 +48,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: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: glib2-devel
|
||||
@@ -93,6 +95,7 @@ reliably than 'resgen'.
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
|
||||
%build
|
||||
export CFLAGS="%{optflags} -pipe -W -Wall -Dgcc_is_lint -lm"
|
||||
|
@@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec <sbrabec@suse.com>
|
||||
|
||||
- Fix crash while handling po files with malformed header and
|
||||
process them properly
|
||||
(0003-Fix-malformed-header-processing.patch, boo#1227316).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 4 13:32:58 UTC 2023 - Frederic Crozat <fcrozat@suse.com>
|
||||
|
||||
|
@@ -45,6 +45,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: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: glib2-devel
|
||||
@@ -78,6 +80,7 @@ java+swing.
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
|
||||
%build
|
||||
# expect a couple "You should update your `aclocal.m4' by running aclocal."
|
||||
|
@@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec <sbrabec@suse.com>
|
||||
|
||||
- Fix crash while handling po files with malformed header and
|
||||
process them properly
|
||||
(0003-Fix-malformed-header-processing.patch, boo#1227316).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 4 13:32:58 UTC 2023 - Frederic Crozat <fcrozat@suse.com>
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package gettext-runtime-mini
|
||||
# spec file for package gettext-runtime
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
#
|
||||
@@ -75,6 +75,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
|
||||
@@ -165,6 +167,7 @@ This package provides headers and static libraries for libtextstyle
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
|
||||
%build
|
||||
%define _lto_cflags %{nil}
|
||||
|
@@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec <sbrabec@suse.com>
|
||||
|
||||
- Fix crash while handling po files with malformed header and
|
||||
process them properly
|
||||
(0003-Fix-malformed-header-processing.patch, boo#1227316).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 4 13:32:58 UTC 2023 - Frederic Crozat <fcrozat@suse.com>
|
||||
|
||||
|
@@ -75,6 +75,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
|
||||
@@ -165,6 +167,7 @@ This package provides headers and static libraries for libtextstyle
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
|
||||
%build
|
||||
%define _lto_cflags %{nil}
|
||||
|
Reference in New Issue
Block a user