Vývojáři projektu Grsecurity
V procesu testování opravy si vývojáři všimli, že při sestavování kompilátor zobrazuje varování o smíchání kódu a definic (struktura byla definována za kódem s přiřazením hodnoty existující proměnné):
int index = n;
if (n < HBP_NUM) { index = array_index_nospec(index, HBP_NUM); struct perf_event *bp = vlákno->ptrace_bps[index];
Linus přijal
if (n < HBP_NUM) { int index = array_index_nospec(n, HBP_NUM); struct perf_event *bp = vlákno->ptrace_bps[index];
V červenci byla oprava přenesena také na stabilní větve jádra 4.4, 4.9, 4.14, 4.19 a 5.2. Správci stájí se také setkali s varováním a místo toho, aby zkontrolovali, zda je již opraveno v Linusově hlavní větvi, sami si jej opravili. Problém je v tom, že bez dlouhého přemýšlení prostě
int index = n;
if (n < HBP_NUM ){ struct perf_event *bp = vlákno->ptrace_bps[index];
index = array_index_nospec(index, HBP_NUM);
Zdroj: opennet.ru