LINUX.ORG.RU

История изменений

Исправление ckotinko, (текущая версия) :

ну там же движок JS есть.

по идее после оптимизации доступ к массиву должен идти либо с проверкой лимитов, либо без проверки если индекс заранее известен и он меньше лимита.

тут возвращается boom, которая работает с буфером размером 256 и доступом по фиксированному адресу. но походу тут оптимизатор немного по другому считает индексы нежели это происходит в асмокоде.

((1-ff(NaN) >>> 0) это (1-int(NaN)) = 1-0x80000000 = 1+0x7fffffff+1=0x80000001. остаток от деления равен fbebebec.

upd: вру. 1-sign(NaN)=NaN к intу 0x80000000 и будет fbebebeb

но видимо оптимизатор считает как-то по другому и он как-то насчитал в допустимых пределах.

что-то не понимаю, как можно было получить валидный индекс.

Исходная версия ckotinko, :

ну там же движок JS есть.

по идее после оптимизации доступ к массиву должен идти либо с проверкой лимитов, либо без проверки если индекс заранее известен и он меньше лимита.

тут возвращается boom, которая работает с буфером размером 256 и доступом по фиксированному адресу. но походу тут оптимизатор немного по другому считает индексы нежели это происходит в асмокоде.

((1-ff(NaN) >>> 0) это (1-int(NaN)) = 1-0x80000000 = 1+0x7fffffff+1=0x80000001. остаток от деления равен fbebebec.

но видимо оптимизатор считает как-то по другому и он как-то насчитал в допустимых пределах.