# HG changeset patch # User Christian Brabandt # Date 1488119403 -3600 # Node ID 7d735b86f7645aaf9be9919255cb049acfbb3394 # Parent 00caec82ffc8a56840c88223c06159bcec1c9849 patch 8.0.0376: size computations in spell file reading are off commit https://github.com/vim/vim/commit/6d3c8586fc81b022e9f06c611b9926108fb878c7 Author: Bram Moolenaar Date: Sun Feb 26 15:27:23 2017 +0100 patch 8.0.0376: size computations in spell file reading are off Problem: Size computations in spell file reading are not exactly right. Solution: Make "len" a "long" and check with LONG_MAX. diff --git a/src/spellfile.c b/src/spellfile.c --- a/src/spellfile.c +++ b/src/spellfile.c @@ -1585,7 +1585,7 @@ spell_read_tree( int prefixtree, /* TRUE for the prefix tree */ int prefixcnt) /* when "prefixtree" is TRUE: prefix count */ { - int len; + long len; int idx; char_u *bp; idx_T *ip; @@ -1595,7 +1595,7 @@ spell_read_tree( len = get4c(fd); if (len < 0) return SP_TRUNCERROR; - if (len >= 0x3ffffff) + if (len >= LONG_MAX / (long)sizeof(int)) /* Invalid length, multiply with sizeof(int) would overflow. */ return SP_FORMERROR; if (len > 0) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 376, +/**/ 375, /**/ 374,