Programistoj de la projekto Grsecurity
Testante la peceton, la programistoj rimarkis, ke dum konstruado, la kompililo montras averton pri miksado de kodo kaj difinoj (la strukturo estis difinita post la kodo, asignante valoron al ekzistanta variablo):
int indekso = n;
if (n < HBP_NUM) { indekso = array_index_nospec (indekso, HBP_NUM); struct perf_okazaĵo *bp = fadeno->ptrace_bps[indekso];
Linus akceptis
if (n < HBP_NUM) { int indekso = array_index_nospec (n, HBP_NUM); struct perf_okazaĵo *bp = fadeno->ptrace_bps[indekso];
En julio, la riparo ankaŭ estis portita al la stabilaj kernaj branĉoj 4.4, 4.9, 4.14, 4.19 kaj 5.2. Ankaŭ la prizorgantoj de la stabilaj branĉoj renkontis la averton kaj, anstataŭ kontroli ĉu ĝi jam estis riparita en la majstra branĉo de Linus, ili mem faris riparo. La problemo estas, ke sen vere pensi pri tio, ili simple
int indekso = n;
if (n < HBP_NUM ){ struct perf_okazaĵo *bp = fadeno->ptrace_bps[indekso];
indekso = array_index_nospec (indekso, HBP_NUM);
fonto: opennet.ru