Dezvoltatorii proiectului Grsecurity
În procesul de testare a patch-ului, dezvoltatorii au observat că la construcție, compilatorul afișează un avertisment despre amestecarea codului și definițiilor (structura a fost definită după cod cu atribuirea unei valori unei variabile existente):
int index = n;
if (n < HBP_NUM) { index = array_index_nospec(index, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[index];
Linus a acceptat
if (n < HBP_NUM) { int index = array_index_nospec(n, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[index];
În iulie, remedierea a fost portată și în ramurile stabile ale nucleului 4.4, 4.9, 4.14, 4.19 și 5.2. De asemenea, menținătorii stabili au întâlnit avertismentul și, în loc să verifice dacă era deja remediat în filiala principală a lui Linus, l-au corectat ei înșiși. Problema este că ei, fără să se gândească prea mult, doar
int index = n;
if (n < HBP_NUM ){ struct perf_event *bp = thread->ptrace_bps[index];
index = array_index_nospec(index, HBP_NUM);
Sursa: opennet.ru