From acaa547d9c935c265e4e428bf30999ca18455ca0 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Tue, 18 Nov 2014 12:29:32 +0900 Subject: [PATCH] tests: Add test for integer overflow when reading MO file * msgunfmt-3: New file. * Makefile.am (TESTS): Add new test. (EXTRA_DIST): Add data file for msgunfmt-3. --- gettext-tools/tests/ChangeLog | 7 +++++++ gettext-tools/tests/Makefile.am | 4 ++-- gettext-tools/tests/msgunfmt-3 | 9 +++++++++ gettext-tools/tests/overflow.mo | Bin 0 -> 48 bytes 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100755 gettext-tools/tests/msgunfmt-3 create mode 100644 gettext-tools/tests/overflow.mo diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog index d6d6788b7..cde48195f 100644 --- a/gettext-tools/tests/ChangeLog +++ b/gettext-tools/tests/ChangeLog @@ -1,3 +1,10 @@ +2014-11-18 Daiki Ueno + + tests: Add test for integer overflow when reading MO file + * msgunfmt-3: New file. + * Makefile.am (TESTS): Add new test. + (EXTRA_DIST): Add data file for msgunfmt-3. + 2014-10-28 Daiki Ueno xgettext: Allow plural extraction from a single argument function diff --git a/gettext-tools/tests/Makefile.am b/gettext-tools/tests/Makefile.am index 3df6e1f7e..910dde0a6 100644 --- a/gettext-tools/tests/Makefile.am +++ b/gettext-tools/tests/Makefile.am @@ -63,7 +63,7 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \ msgmerge-properties-1 msgmerge-properties-2 \ msgmerge-update-1 msgmerge-update-2 msgmerge-update-3 \ msgmerge-update-4 \ - msgunfmt-1 msgunfmt-2 \ + msgunfmt-1 msgunfmt-2 msgunfmt-3 \ msgunfmt-csharp-1 \ msgunfmt-java-1 \ msgunfmt-properties-1 \ @@ -145,7 +145,7 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \ autopoint-1 autopoint-2 autopoint-3 EXTRA_DIST += init.sh init.cfg $(TESTS) \ - test.mo xg-c-1.ok.po mex-test2.ok \ + test.mo overflow.mo xg-c-1.ok.po mex-test2.ok \ mm-ko.ascii.pot mm-ko.euc-kr.po mm-ko-comp.euc-kr.po \ mm-viet.comp.po mm-viet.pot mm-viet.out \ msguniq-a.in msguniq-a.inp msguniq-a.out \ diff --git a/gettext-tools/tests/msgunfmt-3 b/gettext-tools/tests/msgunfmt-3 new file mode 100755 index 000000000..a1b98d7f9 --- /dev/null +++ b/gettext-tools/tests/msgunfmt-3 @@ -0,0 +1,9 @@ +#! /bin/sh +. "${srcdir=.}/init.sh"; path_prepend_ . ../src + +# Test invalid or incomplete input + +: ${MSGUNFMT=msgunfmt} +LANGUAGE= LC_ALL=C ${MSGUNFMT} ../overflow.mo 2>mu-3.err >/dev/null +test $? != 0 || exit 1 +grep ' is truncated' mu-3.err >/dev/null || exit 1 diff --git a/gettext-tools/tests/overflow.mo b/gettext-tools/tests/overflow.mo new file mode 100644 index 0000000000000000000000000000000000000000..3cb4e94db7aca41f9b7d01c53c8c6166e056a7fc GIT binary patch literal 48 ic-p%s#4?ou2pEA_28dM{AV3EyrUT*r2Lgr)AOrw-MF$W7 literal 0 Hc-jL100001 -- 2.47.3