Grsecurity projekto kūrėjai
Bandydami pataisą kūrėjai pastebėjo, kad kuriant kompiliatorius rodo įspėjimą apie kodo ir apibrėžimų maišymą (struktūra buvo apibrėžta po kodu, priskiriant reikšmę esamam kintamajam):
int indeksas = n;
if (n < HBP_NUM) { indeksas = masyvo_indekso_nospec(indeksas, HBP_NUM); struct perf_event *bp = gijos->ptrace_bps[indeksas];
Linus priėmė
if (n < HBP_NUM) { int indeksas = masyvo_indekso_nospec(n, HBP_NUM); struct perf_event *bp = gijos->ptrace_bps[indeksas];
Liepos mėnesį pataisa taip pat buvo perkelta į stabilias branduolio šakas 4.4, 4.9, 4.14, 4.19 ir 5.2. Stabilių filialų prižiūrėtojai taip pat susidūrė su įspėjimu ir, užuot patikrinę, ar jis jau sutvarkytas Linaus pagrindiniame filiale, patys pasitaisė. Problema ta, kad tikrai apie tai negalvodami, jie tiesiog
int indeksas = n;
if (n < HBP_NUM ){ struct perf_event *bp = gijos->ptrace_bps[indeksas];
indeksas = masyvas_indeksas_nospec(indeksas, HBP_NUM);
Šaltinis: opennet.ru