Grsecurity projesinin geliştiricileri
Geliştiriciler yamayı test ederken derleyicinin kod ve tanımların karıştırılmasıyla ilgili bir uyarı görüntülediğini fark etti (yapı koddan sonra tanımlandı, mevcut bir değişkene bir değer atadı):
int indeksi = n;
if (n < HBP_NUM) { indeks = array_index_nospec(indeks, HBP_NUM); struct perf_event *bp = iş parçacığı->ptrace_bps[index];
Linus kabul edildi
if (n < HBP_NUM) { int index = array_index_nospec(n, HBP_NUM); struct perf_event *bp = iş parçacığı->ptrace_bps[index];
Temmuz ayında düzeltme, kararlı çekirdek dalları 4.4, 4.9, 4.14, 4.19 ve 5.2'ye de taşındı. Ahır şubelerinin bakımcıları da bu uyarıyla karşılaştı ve sorunun Linus'un ana şubesinde düzeltilmiş olup olmadığını kontrol etmek yerine kendileri bir düzeltme yaptılar. Sorun şu ki, gerçekten düşünmeden, sadece
int indeksi = n;
if (n < HBP_NUM ){ struct perf_event *bp = thread->ptrace_bps[index];
indeks = array_index_nospec(indeks, HBP_NUM);
Kaynak: opennet.ru