about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2018-07-24 14:08:34 +0200
committerAndreas Schwab <schwab@suse.de>2018-07-24 16:45:46 +0200
commit21526a507df8f1b2e37492193a754534d8938c0b (patch)
tree671add0112e2ece06dbfb8dab75dfc25b7e157b1
parent3650e1d9284926be67e368707a9a2276fb77a167 (diff)
downloadglibc-21526a507df8f1b2e37492193a754534d8938c0b.tar.gz
glibc-21526a507df8f1b2e37492193a754534d8938c0b.tar.xz
glibc-21526a507df8f1b2e37492193a754534d8938c0b.zip
Fix out-of-bounds access in IBM-1390 converter (bug 23448)
The IBM-1390 converter can consume/produce two UCS4 characters in each
loop.
-rw-r--r--ChangeLog6
-rw-r--r--iconvdata/ibm1364.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 8b892eb686..cb01527111 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-07-24  Andreas Schwab  <schwab@suse.de>
+
+	[BZ #23448]
+	* iconvdata/ibm1364.c (MAX_NEEDED_OUTPUT) [FROM_LOOP]: Define.
+	(MAX_NEEDED_INPUT) [TO_LOOP]: Define.
+
 2018-07-24  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/unix/sysv/linux/i386/vfork.S (SYSCALL_ERROR_HANDLER):
diff --git a/iconvdata/ibm1364.c b/iconvdata/ibm1364.c
index b833273aa8..517fe60813 100644
--- a/iconvdata/ibm1364.c
+++ b/iconvdata/ibm1364.c
@@ -150,6 +150,7 @@ enum
 #define MIN_NEEDED_INPUT  	MIN_NEEDED_FROM
 #define MAX_NEEDED_INPUT  	MAX_NEEDED_FROM
 #define MIN_NEEDED_OUTPUT 	MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT 	MAX_NEEDED_TO
 #define LOOPFCT 		FROM_LOOP
 #define BODY \
   {									      \
@@ -296,6 +297,7 @@ enum
 
 /* Next, define the other direction.  */
 #define MIN_NEEDED_INPUT	MIN_NEEDED_TO
+#define MAX_NEEDED_INPUT  	MAX_NEEDED_TO
 #define MIN_NEEDED_OUTPUT	MIN_NEEDED_FROM
 #define MAX_NEEDED_OUTPUT	MAX_NEEDED_FROM
 #define LOOPFCT			TO_LOOP