Ontwikkelaars van het Grsecurity-project
Tijdens het testen van de patch merkten de ontwikkelaars dat de compiler tijdens het bouwen een waarschuwing weergeeft over het mixen van code en definities (de structuur werd na de code gedefinieerd, waarbij een waarde aan een bestaande variabele werd toegewezen):
int-index = n;
als (n <HBP_NUM) {index = array_index_nospec(index, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[index];
Linus accepteerde het
als (n <HBP_NUM) { int index = array_index_nospec(n, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[index];
In juli werd de oplossing ook geport naar de stabiele kerneltakken 4.4, 4.9, 4.14, 4.19 en 5.2. De beheerders van de stabiele branches kwamen de waarschuwing ook tegen en in plaats van te controleren of het al was opgelost in de master-branch van Linus, voerden ze zelf een oplossing uit. Het probleem is dat ze, zonder er echt over na te denken, gewoon
int-index = n;
if (n < HBP_NUM ){ struct perf_event *bp = thread->ptrace_bps[index];
index = array_index_nospec(index, HBP_NUM);
Bron: opennet.ru