summaryrefslogtreecommitdiff
path: root/ext/iconv/tests
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2010-12-01 14:03:36 +0000
committerIlia Alshanetsky <iliaa@php.net>2010-12-01 14:03:36 +0000
commit19a0263e65a19905351dc520f930f896cf9a7ca9 (patch)
tree6be6ef07cf3c7d89fa7b960931d00cf837e5678b /ext/iconv/tests
parenta45631d9663a8a6af7b5a739e48966a604a7e961 (diff)
downloadphp-git-19a0263e65a19905351dc520f930f896cf9a7ca9.tar.gz
Fixed bug #51250 (iconv_mime_decode() does not ignore malformed Q-encoded words)
Diffstat (limited to 'ext/iconv/tests')
-rw-r--r--ext/iconv/tests/bug51250.phpt29
1 files changed, 29 insertions, 0 deletions
diff --git a/ext/iconv/tests/bug51250.phpt b/ext/iconv/tests/bug51250.phpt
new file mode 100644
index 0000000000..fd2e53b97a
--- /dev/null
+++ b/ext/iconv/tests/bug51250.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Bug #51250 (iconv_mime_decode() does not ignore malformed Q-encoded words)
+--SKIPIF--
+<?php extension_loaded('iconv') or die('skip iconv extension is not available'); ?>
+--FILE--
+<?php
+$m = ICONV_MIME_DECODE_CONTINUE_ON_ERROR;
+
+var_dump(iconv_mime_decode("Legal encoded-word: =?utf-8?B?Kg==?= .", $m));
+var_dump(iconv_mime_decode("Legal encoded-word: =?utf-8?Q?*?= .", $m));
+var_dump(iconv_mime_decode("Illegal encoded-word: =?utf-8?B?".chr(0xA1)."?= .", $m));
+var_dump(iconv_mime_decode("Illegal encoded-word: =?utf-8?Q?".chr(0xA1)."?= .", $m));
+
+var_dump(iconv_mime_decode("Legal encoded-word: =?utf-8?B?Kg==?= ."));
+var_dump(iconv_mime_decode("Legal encoded-word: =?utf-8?Q?*?= ."));
+var_dump(iconv_mime_decode("Illegal encoded-word: =?utf-8?B?".chr(0xA1)."?= ."));
+var_dump(iconv_mime_decode("Illegal encoded-word: =?utf-8?Q?".chr(0xA1)."?= ."));
+?>
+--EXPECTF--
+string(23) "Legal encoded-word: * ."
+string(23) "Legal encoded-word: * ."
+string(24) "Illegal encoded-word: ."
+string(23) "Illegal encoded-word: ."
+string(23) "Legal encoded-word: * ."
+string(23) "Legal encoded-word: * ."
+string(24) "Illegal encoded-word: ."
+
+Notice: iconv_mime_decode(): Detected an illegal character in input string in %s on line %d
+bool(false)