[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-iconv8.c b/ap/libc/glibc/glibc-2.22/iconvdata/bug-iconv8.c
new file mode 100644
index 0000000..b91dc1d
--- /dev/null
+++ b/ap/libc/glibc/glibc-2.22/iconvdata/bug-iconv8.c
@@ -0,0 +1,43 @@
+// BZ 12601
+#include <stdio.h>
+#include <errno.h>
+#include <iconv.h>
+
+static int
+do_test (void)
+{
+   iconv_t cd;
+   char in[] = "\x83\xd9";
+   char out[256];
+   char *inbuf;
+   size_t inbytesleft;
+   char *outbuf;
+   size_t outbytesleft;
+   size_t ret;
+
+   inbuf = in;
+   inbytesleft = sizeof(in) - 1;
+   outbuf = out;
+   outbytesleft = sizeof(out);
+
+   cd = iconv_open("utf-8", "cp932");
+   ret = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+   iconv_close(cd);
+
+   printf("result: %zd %d %zd %d\n", ret, errno, inbytesleft, inbuf[0]);
+
+   /*
+    * result: -1 84 0 0        (84=EILSEQ)
+    *
+    * Error is returnd but inbuf is consumed.
+    *
+    * \x83\xd9 is valid shift-jis sequence but no character is assigned
+    * to it.
+    */
+
+   return (ret != -1 || errno != EILSEQ
+	   || inbytesleft != 2 || inbuf[0] != in[0]);
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"