Grsecurity նախագծի մշակողները
Կարկատման փորձարկման գործընթացում մշակողները նկատել են, որ կառուցման ժամանակ կոմպիլյատորը ցուցադրում է նախազգուշացում կոդի և սահմանումների խառնման մասին (կառուցվածքը սահմանվել է կոդից հետո՝ գոյություն ունեցող փոփոխականին արժեք հատկացնելով).
int ինդեքս = n;
if (n < HBP_NUM) { index = array_index_nospec (index, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[index];
Լինուսն ընդունեց
եթե (n < HBP_NUM) { int index = array_index_nospec(n, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[index];
Հուլիսին ուղղումը տեղափոխվեց նաև 4.4, 4.9, 4.14, 4.19 և 5.2 կայուն միջուկի ճյուղերում: Կայուն սպասարկողները նույնպես հանդիպեցին նախազգուշացմանը, և փոխանակ ստուգելու, թե արդյոք այն արդեն ֆիքսված է Լինուսի գլխավոր ճյուղում, նրանք իրենք այն կարկատեցին։ Խնդիրն այն է, որ նրանք, առանց շատ մտածելու, պարզապես
int ինդեքս = n;
if (n < HBP_NUM ){ struct perf_event *bp = thread->ptrace_bps[index];
ինդեքս = array_index_nospec (ինդեքս, HBP_NUM);
Source: opennet.ru