Bug 2787: Crash on js accessing option index out of range.

This commit is contained in:
pollmann%netscape.com 1999-01-30 00:51:10 +00:00
Родитель d6d23fe90a
Коммит 86db74417d
2 изменённых файлов: 16 добавлений и 4 удалений

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

@ -598,8 +598,14 @@ nsOptionList::GetLength(PRUint32* aLength)
NS_IMETHODIMP NS_IMETHODIMP
nsOptionList::Item(PRUint32 aIndex, nsIDOMNode** aReturn) nsOptionList::Item(PRUint32 aIndex, nsIDOMNode** aReturn)
{ {
*aReturn = (nsIDOMNode*)mElements.ElementAt(aIndex); PRUint32 length = 0;
NS_ADDREF(*aReturn); GetLength(&length);
if (aIndex >= length) {
*aReturn = nsnull;
} else {
*aReturn = (nsIDOMNode*)mElements.ElementAt(aIndex);
NS_ADDREF(*aReturn);
}
return NS_OK; return NS_OK;
} }

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

@ -598,8 +598,14 @@ nsOptionList::GetLength(PRUint32* aLength)
NS_IMETHODIMP NS_IMETHODIMP
nsOptionList::Item(PRUint32 aIndex, nsIDOMNode** aReturn) nsOptionList::Item(PRUint32 aIndex, nsIDOMNode** aReturn)
{ {
*aReturn = (nsIDOMNode*)mElements.ElementAt(aIndex); PRUint32 length = 0;
NS_ADDREF(*aReturn); GetLength(&length);
if (aIndex >= length) {
*aReturn = nsnull;
} else {
*aReturn = (nsIDOMNode*)mElements.ElementAt(aIndex);
NS_ADDREF(*aReturn);
}
return NS_OK; return NS_OK;
} }