Don't read before the beginning of a string in Atob. (Bug 494105) r=mrbkap

This commit is contained in:
L. David Baron 2009-12-26 19:03:57 -05:00
Родитель 02752e9f5b
Коммит 7032d31103
1 изменённых файлов: 3 добавлений и 3 удалений

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

@ -221,10 +221,10 @@ Atob(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
char *base64Str = JS_GetStringBytes(str);
PRUint32 bin_dataLength = (PRUint32)base64StrLength;
if (base64Str[base64StrLength - 1] == '=') {
if (base64Str[base64StrLength - 2] == '=')
if (base64StrLength >= 1 && base64Str[base64StrLength - 1] == '=') {
if (base64StrLength >= 2 && base64Str[base64StrLength - 2] == '=')
bin_dataLength -= 2;
else
else
--bin_dataLength;
}
bin_dataLength = (PRUint32)((PRUint64)bin_dataLength * 3) / 4;