Grsecurity ప్రాజెక్ట్ డెవలపర్లు
ప్యాచ్ను పరీక్షిస్తున్నప్పుడు, డెవలపర్లు నిర్మాణ సమయంలో, కంపైలర్ కోడ్ మరియు నిర్వచనాలను కలపడం గురించి హెచ్చరికను ప్రదర్శిస్తుందని గమనించారు (కోడ్ తర్వాత నిర్మాణం నిర్వచించబడింది, ఇప్పటికే ఉన్న వేరియబుల్కు విలువను కేటాయించడం):
int సూచిక = n;
ఉంటే (n < HBP_NUM) {index = array_index_nospec(index, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[index];
లినస్ అంగీకరించారు
అయితే (n < HBP_NUM) {int index = array_index_nospec(n, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[index];
జూలైలో, ఫిక్స్ స్థిరమైన కెర్నల్ బ్రాంచ్లు 4.4, 4.9, 4.14, 4.19 మరియు 5.2కి కూడా పోర్ట్ చేయబడింది. స్థిరమైన శాఖల నిర్వాహకులు కూడా హెచ్చరికను ఎదుర్కొన్నారు మరియు లైనస్ యొక్క మాస్టర్ బ్రాంచ్లో ఇది ఇప్పటికే పరిష్కరించబడిందో లేదో తనిఖీ చేయడానికి బదులుగా, వారు స్వయంగా పరిష్కరించారు. సమస్య ఏమిటంటే, దాని గురించి నిజంగా ఆలోచించకుండా, వారు కేవలం
int సూచిక = n;
అయితే (n < HBP_NUM ){ struct perf_event *bp = thread->ptrace_bps[index];
సూచిక = array_index_nospec(సూచిక, HBP_NUM);
మూలం: opennet.ru