Revision: 6489
http://ipcop.svn.sourceforge.net/ipcop/?rev=6489&view=rev
Author: gespinasse
Date: 2012-03-18 08:54:20 +0000 (Sun, 18 Mar 2012)
Log Message:
-----------
While mostly ready to close the windows on gettext git tree, I found this bug
fixed on malformed translation.
I see too that we do not apply the advice given that would prevent the issue :
always use msgfmt --check, implying --check-format, --check-header,
--check-domain
I only added --check-format because our translation system miss some of the
headers.
Modified Paths:
--------------
ipcop/trunk/lfs/gettext
ipcop/trunk/lfs/ipcop-lang
Added Paths:
-----------
ipcop/trunk/src/patches/gettext-0.18.1.1_printf.patch
Modified: ipcop/trunk/lfs/gettext
===================================================================
--- ipcop/trunk/lfs/gettext 2012-03-17 11:59:36 UTC (rev 6488)
+++ ipcop/trunk/lfs/gettext 2012-03-18 08:54:20 UTC (rev 6489)
@@ -85,6 +85,8 @@
# Upstream know :
http://lists.gnu.org/archive/html/bug-gnu-utils/2011-01/msg00041.html
# libcroco part is in libcroco-0.64, unsure if libgrep part will be
applied
cd $(DIR_APP) && patch -p1 -i
$(DIR_PATCHES)/$(THISAPP)_format-string.patch
+ # From upstream, fix a segv with malformed string
+ cd $(DIR_APP) && patch -p1 -i $(DIR_PATCHES)/$(THISAPP)_printf.patch
ifeq "$(STAGE)" "toolchain"
cd $(DIR_APP)/gettext-tools && EMACS="no" ./configure
--prefix=/$(TOOLS_DIR) --disable-shared --disable-nls
Modified: ipcop/trunk/lfs/ipcop-lang
===================================================================
--- ipcop/trunk/lfs/ipcop-lang 2012-03-17 11:59:36 UTC (rev 6488)
+++ ipcop/trunk/lfs/ipcop-lang 2012-03-18 08:54:20 UTC (rev 6489)
@@ -63,13 +63,16 @@
# List of translated languages
cp $(DIR_SRC)/langs/list /var/ipcop/main/language.lst
+ # Translations should be checked with msgfmt --check, only using
--check-format as actually,
+ # some headers are missing : Project-Id-Version, PO-Revision-Date,
Last-Translator, Language-Team, MIME-Version, Language
+
# Locale files for GUI
# Unfortunately, list_progress match langs/*_*, so filter that name for
now with sed.
# Replace with *_* after in, once list_progress is renamed
cd $(DIR_SRC)/langs && for i in `ls -d *_* | sed "s|list_progress||"`;
do \
echo "Processing $$i for GUI"; \
mkdir -p /usr/share/locale/$$i/LC_MESSAGES; \
- msgfmt $(DIR_SRC)/langs/$$i/ipcop.po -o
/usr/share/locale/$$i/LC_MESSAGES/ipcop.mo; \
+ msgfmt --check-format $(DIR_SRC)/langs/$$i/ipcop.po -o
/usr/share/locale/$$i/LC_MESSAGES/ipcop.mo; \
localedef -i $$i -f UTF-8 $$i.utf8 --no-archive; \
done
@@ -77,7 +80,7 @@
for i in `grep -v "no-installer" $(DIR_SRC)/langs/list | cut -d ':' -f
2` ; do \
echo "Processing $$i for installer"; \
mkdir -p /usr/share/locale/$$i/LC_MESSAGES; \
- msgfmt $(DIR_SRC)/langs/$$i/install.po -o
/usr/share/locale/$$i/LC_MESSAGES/install.mo; \
+ msgfmt --check-format $(DIR_SRC)/langs/$$i/install.po -o
/usr/share/locale/$$i/LC_MESSAGES/install.mo; \
done
# Locale files for installer are created later in initramfs
Added: ipcop/trunk/src/patches/gettext-0.18.1.1_printf.patch
===================================================================
--- ipcop/trunk/src/patches/gettext-0.18.1.1_printf.patch
(rev 0)
+++ ipcop/trunk/src/patches/gettext-0.18.1.1_printf.patch 2012-03-18
08:54:20 UTC (rev 6489)
@@ -0,0 +1,34 @@
+http://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commitdiff;h=1a1831be04f634375c7e7c56cac7ec2f4167e863
+
+ Avoid crash in *printf functions for invalid format string with dollar.
+ * printf.c (libintl_vsnprintf, libintl_vswprintf): Don't crash in
+ mempy if libintl_vasnprintf returned NULL.
+ Reported by Jeong, Heon <[email protected]>
+ in <https://savannah.gnu.org/bugs/?34555>.
+
+2011-10-15 Bruno Haible <[email protected]>
+
+
+diff --git a/gettext-runtime/intl/printf.c b/gettext-runtime/intl/printf.c
+index 157853a..0369e87 100644
+--- a/gettext-runtime/intl/printf.c
++++ b/gettext-runtime/intl/printf.c
+@@ -213,6 +213,8 @@ libintl_vsnprintf (char *resultbuf, size_t length, const
char *format, va_list a
+ {
+ size_t maxlength = length;
+ char *result = libintl_vasnprintf (resultbuf, &length, format, args);
++ if (result == NULL)
++ return -1;
+ if (result != resultbuf)
+ {
+ if (maxlength > 0)
+@@ -388,6 +390,8 @@ libintl_vswprintf (wchar_t *resultbuf, size_t length,
const wchar_t *format, va_
+ {
+ size_t maxlength = length;
+ wchar_t *result = libintl_vasnwprintf (resultbuf, &length, format,
args);
++ if (result == NULL)
++ return -1;
+ if (result != resultbuf)
+ {
+ if (maxlength > 0)
+
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ipcop-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ipcop-svn