[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/libc/glibc/glibc-2.22/iconvdata/bug-iconv2.c b/ap/libc/glibc/glibc-2.22/iconvdata/bug-iconv2.c
new file mode 100644
index 0000000..4bd4550
--- /dev/null
+++ b/ap/libc/glibc/glibc-2.22/iconvdata/bug-iconv2.c
@@ -0,0 +1,47 @@
+/* Test case by Akira Higuchi <a@kondara.org>. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main (void)
+{
+ const char *dummy_codesets[] =
+ {
+ "ISO_8859-1", "ISO_8859-2", "ISO_8859-3", "ISO_8859-4",
+ "ISO_8859-5", "ISO_8859-6", "ISO_8859-7", "ISO_8859-8"
+ };
+ iconv_t dummy_cd[8], cd_a;
+ int i;
+ char buffer[1024], *to = buffer;
+ char *from = (char *) "foobar";
+ size_t to_left = 1024, from_left = 6;
+
+ /* load dummy modules */
+ for (i = 0; i < 8; i++)
+ if ((dummy_cd[i] = iconv_open (dummy_codesets[i], "UTF8")) == (iconv_t) -1)
+ exit (1);
+
+ /* load a module... */
+ if ((cd_a = iconv_open ("EUC-JP", "UTF8")) == (iconv_t) -1)
+ exit (1);
+ /* and close it once. we'll reload this later */
+ iconv_close (cd_a);
+
+ /* unload dummy modules */
+ for (i = 0; i < 8; i++)
+ iconv_close (dummy_cd[i]);
+
+ /* load the module again */
+ if ((cd_a = iconv_open ("EUC-JP", "UTF8")) == (iconv_t) -1)
+ exit (1);
+
+ puts ("This used to crash");
+ printf ("%zd\n", iconv (cd_a, &from, &from_left, &to, &to_left));
+ iconv_close (cd_a);
+
+ puts ("works now");
+
+ return 0;
+}