Исправление uin, (текущая версия) :
Ну этот не будет а вот этот вот будет:
char a1[10]="0123456789";
char secret[10]="secret";
char* a2;
char func(int offset)
{
if (offset<10)
a2[a1[offset]*64];
}
a2[a1[offset]*64];
еще до того как проверит условие (ну хорошо, в интеле загрузит, а в эльбрусе компилятор просто поставит ее самой первой). Но в защищенном режиме это ничего не даст потому что строго контролируются границы чего откуда можно загружать. В данном примере оно так и так куда то перелазит за диапазон и программа либо грохнется (если условие удовлетворено) либо не грохаясь проскочит но в любом случае (в защищенном режиме) данных в кэше не окажется.Исправление uin, :
Ну этот не будет а вот этот вот будет:
char a1[10]="0123456789";
char secret[10]="secret";
char* a2;
char func(int offset)
{
if (offset<10)
a2[a1[offset]*64];
}
a2[a1[offset]*64];
еще до того как проверит условие (ну хорошо, в интеле загрузит, а в эльбрусе компилятор просто поставит ее самой первой). Но в защищенном режиме это ничего не даст потому что строго контролируются границы чего откуда можно загружать. В данном примере оно так и так куда то перелазит за диапазон и программа либо грохнется (если условие удовлетворено) либо не грохаясь проскочит но в любом случае (в защищенном режиме) данных в кэше не окажется.Исходная версия uin, :
Ну этот не будет а вот этот вот будет.
char a1[10]="0123456789";
char secret[10]="secret";
char* a2;
char func(int offset)
{
if (offset<10)
a2[a1[offset]*64];
}
a2[a1[offset]*64];
еще до того как проверит условие (ну хорошо, в интеле загрузит, а в эльбрусе компилятор просто поставит ее самой первой). Но в защищенном режиме это ничего не даст потому что строго контролируются границы чего откуда можно загружать. В данном примере оно так и так куда то перелазит за диапазон и программа либо грохнется (если условие удовлетворено) либо не грохаясь проскочит но в любом случае (в защищенном режиме) данных в кэше не окажется.