Bug 340050 r+sr=roc a=schrep Crash in spellchecker checking absurdly long word

This commit is contained in:
brettw%gmail.com 2006-07-27 18:11:08 +00:00
Родитель d15c579c18
Коммит 6682f75979
1 изменённых файлов: 10 добавлений и 0 удалений

Просмотреть файл

@ -41,6 +41,8 @@
#include "mozISpellI18NManager.h"
#include "nsIStringEnumerator.h"
#define UNREASONABLE_WORD_LENGTH 64
NS_IMPL_ISUPPORTS1(mozSpellChecker, nsISpellChecker)
mozSpellChecker::mozSpellChecker()
@ -128,6 +130,14 @@ mozSpellChecker::CheckWord(const nsAString &aWord, PRBool *aIsMisspelled, nsStri
PRBool correct;
if(!mSpellCheckingEngine)
return NS_ERROR_NULL_POINTER;
// don't bother to check crazy words, also, myspell gets unhappy if you
// give it too much data and crashes sometimes
if (aWord.Length() > UNREASONABLE_WORD_LENGTH) {
*aIsMisspelled = PR_TRUE;
return NS_OK;
}
*aIsMisspelled = PR_FALSE;
result = mSpellCheckingEngine->Check(PromiseFlatString(aWord).get(), &correct);
NS_ENSURE_SUCCESS(result, result);