diff -rup vim74/src/spell.c vim74-new/src/spell.c
--- vim74/src/spell.c 2013-07-17 08:28:28.000000000 -0700
+++ vim74-new/src/spell.c 2017-02-23 12:18:03.096797651 -0800
@@ -4043,6 +4043,9 @@ spell_read_tree(fd, bytsp, idxsp, prefix
len = get4c(fd);
if (len < 0)
return SP_TRUNCERROR;
+ if (len >= 0x3fffffff)
+ /* Invalid length, multiply with sizeof(int) would overflow. */
+ return SP_FORMERROR;
if (len > 0)
{
/* Allocate the byte array. */