From: Daiki Ueno Date: Tue, 18 Nov 2014 03:29:32 +0000 (+0900) Subject: tests: Add test for integer overflow when reading MO file X-Git-Tag: v0.19.4~64 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=acaa547d9c935c265e4e428bf30999ca18455ca0;p=thirdparty%2Fgettext.git 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. --- 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 000000000..3cb4e94db Binary files /dev/null and b/gettext-tools/tests/overflow.mo differ