Utviklere av Grsecurity-prosjektet
I prosessen med å teste oppdateringen la utviklerne merke til at når kompilatoren bygger, viser kompilatoren en advarsel om å blande kode og definisjoner (strukturen ble definert etter koden med å tilordne en verdi til en eksisterende variabel):
int indeks = n;
if (n < HBP_NUM) { indeks = array_index_nospec(indeks, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[indeks];
Linus takket ja
if (n < HBP_NUM) { int index = array_index_nospec(n, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[indeks];
I juli ble rettelsen også portert til 4.4, 4.9, 4.14, 4.19 og 5.2 stabile kjernegrener. Stallholderne møtte også advarselen, og i stedet for å sjekke om den allerede var fikset i Linus sin mastergren, lappet de den selv. Problemet er at de, uten mye ettertanke, bare
int indeks = n;
if (n < HBP_NUM ){ struct perf_event *bp = thread->ptrace_bps[index];
indeks = array_index_nospec(indeks, HBP_NUM);
Kilde: opennet.ru