Các nhà phát triển của dự án Grsecurity
Trong quá trình kiểm tra bản vá, các nhà phát triển nhận thấy rằng khi xây dựng, trình biên dịch sẽ hiển thị cảnh báo về việc trộn mã và định nghĩa (cấu trúc được xác định sau mã với việc gán giá trị cho một biến hiện có):
chỉ số int = n;
if (n < HBP_NUM) { index = array_index_nospec(index, HBP_NUM); cấu trúc perf_event *bp = thread->ptrace_bps[index];
Linus chấp nhận
if (n < HBP_NUM) { int index = array_index_nospec(n, HBP_NUM); cấu trúc perf_event *bp = thread->ptrace_bps[index];
Vào tháng 4.4, bản sửa lỗi cũng đã được chuyển sang các nhánh kernel ổn định 4.9, 4.14, 4.19, 5.2 và XNUMX. Những người bảo trì ổn định cũng gặp phải cảnh báo và thay vì kiểm tra xem nó đã được sửa trong nhánh chính của Linus hay chưa, họ đã tự vá nó. Vấn đề là họ, không cần suy nghĩ nhiều, chỉ
chỉ số int = n;
if (n < HBP_NUM ){ struct perf_event *bp = thread->ptrace_bps[index];
chỉ số = mảng_index_nospec(chỉ số, HBP_NUM);
Nguồn: opennet.ru