blob: f81f0ba5b9270bd604f66019d7f6952b7b94d1d8 [file] [log] [blame]
Change 160419349 by lbaudoin@lbaudoin:hunspell-fix:6013:citc on 2017/06/28 09:50:38
Fix two crashes in hunspell.
The null check is borrowed from hunspell 1.3.4, checking for a negative index protects from the second type of crashes. The existing code had checks here and there (but missed spots) but it seems safer to check at the point of use.
PRESUBMIT=passed
BUG=28718593,62755495
FIXED=28718593,62755495
R=bgoodman,shine
CC=gmail-security+reviews
APPROVED=shine
REQUIRED_REVIEW=1
DELTA=10 (2 added, 6 deleted, 2 changed)
DELTA_BY_EXTENSION=cxx=3
OCL=160341892
Affected files ...
... //depot//BUILD#17 edit
... //depot//src/hunspell/hunspell.cxx#6 edit
==== //depot//src/hunspell/hunspell.cxx#5 - /google/src/files/160419349/depot//src/hunspell/hunspell.cxx ====
--- /google/src/files/160151083/depot//src/hunspell/hunspell.cxx 2017-06-26 12:01:35.000000000 -0400
+++ /google/src/files/160419349/depot//src/hunspell/hunspell.cxx 2017-06-28 12:50:38.000000000 -0400
@@ -312,7 +312,9 @@
/* insert a word to the beginning of the suggestion array and return ns */
int Hunspell::insert_sug(char ***slst, char * word, int ns) {
- char * dup = mystrdup(word);
+ if (!slst || !*slst || ns < 0)
+ return ns;
+ char * dup = mystrdup(word);
if (!dup) return ns;
if (ns == MAXSUGGESTION) {
ns--;