diff options
| author | Sean Finney <seanius@debian.org> | 2009-04-10 14:09:48 +0200 |
|---|---|---|
| committer | Sean Finney <seanius@debian.org> | 2009-04-10 14:09:48 +0200 |
| commit | cd0b49c72aee33b3e44a9c589fcd93b9e1c7a64f (patch) | |
| tree | 1315c623bb7d9dfa8d366fa9cd2c6834ceeb5da5 /ext/gettext/tests | |
| parent | 9ea47aab740772adf0c69d8c94b208a464e599ea (diff) | |
| download | php-cd0b49c72aee33b3e44a9c589fcd93b9e1c7a64f.tar.gz | |
Imported Upstream version 5.2.9.dfsg.1upstream/5.2.9.dfsg.1
Diffstat (limited to 'ext/gettext/tests')
| -rw-r--r-- | ext/gettext/tests/44938.phpt | 85 | ||||
| -rw-r--r-- | ext/gettext/tests/dcngettext.phpt | 2 |
2 files changed, 86 insertions, 1 deletions
diff --git a/ext/gettext/tests/44938.phpt b/ext/gettext/tests/44938.phpt new file mode 100644 index 000000000..f2d594aa5 --- /dev/null +++ b/ext/gettext/tests/44938.phpt @@ -0,0 +1,85 @@ +--TEST-- +#44938: gettext functions crash with overlong strings +--SKIPIF-- +<?php +if (!extension_loaded("gettext")) { + die("skip\n"); +} +--FILE-- +<?php +$overflown = str_repeat('C', 8476509); +$msgid = "msgid"; +$domain = "domain"; +$category = "cat"; + +var_dump(bindtextdomain($overflown, 'path')); + +var_dump(dngettext($overflown, $msgid, $msgid, 1)); +var_dump(dngettext($domain, $overflown, $msgid, 1)); +var_dump(dngettext($domain, $msgid, $overflown, 1)); + +var_dump(gettext($overflown)); + +var_dump(ngettext($overflown, $msgid, -1)); +var_dump(ngettext($msgid, $overflown, -1)); + +var_dump(dcgettext($overflown, $msgid, -1)); +var_dump(dcgettext($domain, $overflown, -1)); + +var_dump(dcngettext($overflown, $msgid, $msgid, -1, -1)); +var_dump(dcngettext($domain, $overflown, $msgid, -1, -1)); +var_dump(dcngettext($domain, $msgid, $overflown, -1, -1)); + +var_dump(dgettext($overflown, $msgid)); +var_dump(dgettext($domain, $overflown)); + +var_dump(textdomain($overflown)); +?> +==DONE== +--EXPECTF-- + +Warning: bindtextdomain(): domain passed too long in %s on line %d +bool(false) + +Warning: dngettext(): domain passed too long in %s on line %d +bool(false) + +Warning: dngettext(): msgid1 passed too long in %s on line %d +bool(false) + +Warning: dngettext(): msgid2 passed too long in %s on line %d +bool(false) + +Warning: gettext(): msgid passed too long in %s on line %d +bool(false) + +Warning: ngettext(): msgid1 passed too long in %s on line %d +bool(false) + +Warning: ngettext(): msgid2 passed too long in %s on line %d +bool(false) + +Warning: dcgettext(): domain passed too long in %s on line %d +bool(false) + +Warning: dcgettext(): msgid passed too long in %s on line %d +bool(false) + +Warning: dcngettext(): domain passed too long in %s on line %d +bool(false) + +Warning: dcngettext(): msgid1 passed too long in %s on line %d +bool(false) + +Warning: dcngettext(): msgid2 passed too long in %s on line %d +bool(false) + +Warning: dgettext(): domain passed too long in %s on line %d +bool(false) + +Warning: dgettext(): msgid passed too long in %s on line %d +bool(false) + +Warning: textdomain(): domain passed too long in %s on line %d +bool(false) +==DONE== diff --git a/ext/gettext/tests/dcngettext.phpt b/ext/gettext/tests/dcngettext.phpt index e5961eb1e..2b8e2b196 100644 --- a/ext/gettext/tests/dcngettext.phpt +++ b/ext/gettext/tests/dcngettext.phpt @@ -19,7 +19,7 @@ var_dump(dcngettext("","","",0,0)); echo "Done\n"; ?> --EXPECTF-- -Warning: Wrong parameter count for dcngettext() in %s on line %d +Warning: dcngettext() expects exactly 5 parameters, 4 given in %s on line %d bool(false) string(1) "1" string(4) "test" |
