Change 160151083 by lbaudoin@lbaudoin:hunspell-fix:6013:citc on 2017/06/26 09:01:35

	Fix a buffer overflow in hunspell case mkinit* functions.
	The fix is flawed but:
	 - It prevents the buffer overflows
	 - I think that it works for the dictionaries we use with hunspell.
	 - The failure mode is getting a bad suggestion or no suggestions so I think we can live with it.
	
	A real fix would be to use std::strings, allocate more than needed or allow re-allocation.
	All of these require extensive changes to an outdated version of hunspell (checked in version is 1.3, current version is 1.6 and doesn't have these issues). Our plan is to deprecate all uses of hunspell instead of investing the time needed to either upgrade or fully fix.
	
	PRESUBMIT=passed
	BUG=28718593
	R=bgoodman,shine
	CC=gmail-security+reviews,sfen
	APPROVED=shine
	REQUIRED_REVIEW=1
	DELTA=19 (14 added, 2 deleted, 3 changed)
	DELTA_BY_EXTENSION=cxx=10
	OCL=159994634

Affected files ...

... //depot//BUILD#16 edit
... //depot//src/hunspell/hunspell.cxx#5 edit

==== //depot//src/hunspell/hunspell.cxx#4 - /google/src/files/160151083/depot//src/hunspell/hunspell.cxx ====
--- /google/src/files/151456944/depot//src/hunspell/hunspell.cxx	2017-03-28 12:13:02.000000000 -0400
+++ /google/src/files/160151083/depot//src/hunspell/hunspell.cxx	2017-06-26 12:01:35.000000000 -0400
@@ -1297,7 +1297,9 @@
       unsigned short i = unicodetoupper((u[0].h << 8) + u[0].l, langnum);
       u[0].h = (unsigned char) (i >> 8);
       u[0].l = (unsigned char) (i & 0x00FF);
-      u16_u8(p, MAXWORDUTF8LEN, u, len);
+      // TODO: p might not be long enough if the upper case character
+      // is longer in UTF-8 than the original one.
+      u16_u8(p, strlen(p), u, len);
   }
 }
 
@@ -1309,7 +1311,9 @@
       unsigned short i = unicodetoupper((u[0].h << 8) + u[0].l, langnum);
       u[0].h = (unsigned char) (i >> 8);
       u[0].l = (unsigned char) (i & 0x00FF);
-      u16_u8(p, MAXWORDUTF8LEN, u, nc);
+      // TODO: p might not be long enough if the upper case character
+      // is longer in UTF-8 than the original one.
+      u16_u8(p, strlen(p), u, nc);
       return strlen(p);
   }
   return nc;
@@ -1323,7 +1327,10 @@
       unsigned short i = unicodetolower((u[0].h << 8) + u[0].l, langnum);
       u[0].h = (unsigned char) (i >> 8);
       u[0].l = (unsigned char) (i & 0x00FF);
-      u16_u8(p, MAXWORDUTF8LEN, u, nc);
+      auto len = strlen(p);
+      // TODO: p might not be long enough if the lower case character
+      // is longer in UTF-8 than the original one.
+      u16_u8(p, len, u, nc);
       return strlen(p);
   }
   return nc;
