Как стать автором
Обновить
27
0

sysadmin, hobby gamdev

Отправить сообщение

Простой и не очень очевидный способ повесить chrome, firefox и nodejs внутри нативной функции

Время на прочтение2 мин
Количество просмотров25K

Вот весь код: var x = []; x[0x7fffffff]=1; JSON.stringify(x);


Для желающих попробовать: jsfiddle


Таким незамысловатым способом, можно намертво повесить firefox, довести до падения вкладку хрома и повесить основной поток nodejs.

Самое примечательное в этом то, что зависание происходит на уровне нативного кода функции JSON.stringify, что не позволяет прервать выполнение в том же firefox'е, как это обычно бывает при простом while(true);.

При выполнении внутри WebWorker'а в chrome, страница продолжает отвечать, но terminate не может завершить поток.

Так же по понятным причинам, такой код не обнаруживается jslint'ом.

Как это работает и как автор докатился до жизни такой
Всего голосов 57: ↑53 и ↓4+49
Комментарии30

Информация

В рейтинге
Не участвует
Откуда
Ростов-на-Дону, Ростовская обл., Россия
Дата рождения
Зарегистрирован
Активность