Keskuste kĂ€igus Spectre'i klassi haavatavustega seotud koodiparanduste komplekti ĂŒle selgus, et probleemi oleks vĂ”imalik elegantselt lahendada, kui tuum saaks toetada uuema versiooni C-keele standardit. Praegu peab tuuma lisatav kood vastama ANSI C (C89) spetsifikatsioonile, mis loodi juba 1989. aastal.
Spectre'iga seotud koodiprobleem tekkis, kuna eraldi defineeritud iteraatori kasutamine jĂ€tkus pĂ€rast tsĂŒklit - seotud loendi elementide lĂ€bimiseks kasutatakse makrot, ning kuna tsĂŒkli iteraator edastatakse sellele makrole, mÀÀratakse see vĂ€ljaspool tsĂŒklit ja jÀÀb pĂ€rast tsĂŒklit kĂ€tte saadavaks. C99 standardi kasutamine vĂ”imaldaks tsĂŒkli muutujate mÀÀratlemist for() plokkides, mis lahendaks probleemi ilma ringteedeta.
Linus Torvalds nĂ”ustus ideega rakendada uuemate spetsifikatsioonide toetust ja pakkus vĂ€lja, et tuumas 5.18 tuleks minna ĂŒle C11 standardi kasutamisele, mis avaldati 2011. aastal. Eelkontrolli kĂ€igus ei tekkinud GCC ja Clang uues reĆŸiimis kokku kukkumisi. Kui pĂ”hjalikumat testimist ei kaasne ettenĂ€gematuid probleeme, asendatakse tuuma 5.18 ehitusskriptides valik 'âstd=gnu89' valikuga 'âstd=gnu11 -Wno-shift-negative-value'. C17 standardi kasutamise vĂ”imalus kaaluti samuti, kuid sel juhul tuleks tĂ”sta minimaalne toetatud GCC versioon. C11 toe lisamine jÀÀb aga praeguste GCC (5.1) versiooni nĂ”uete piiridesse.
Allikas: opennet.ru
