Gjatë diskutimit të një grupi patches për zgjidhjen e problemeve të lidhura me vulnerabilitetet e klasës Spectre në kodin për punimin me lista të lidhura, u bë e qartë se problemi do të zgjidhej më elegancë nëse në bërthamë do të lejohej kod në gjuhën C, që i përmbush standardin më të ri. Aktualisht, kodi i shtuar në bërthamë duhet të përputhet me specifikimin ANSI C (C89), i formuar që në vitin 1989.
Problemi i lidhur me Spectre nĂ« kod ishte shkaktuar nga vazhdimi i pĂ«rdorimit tĂ« njĂ« iteratori tĂ« definuar veçmas pas ciklit â pĂ«r tĂ« iteruar elementet e listĂ«s sĂ« lidhur pĂ«rdoret njĂ« makros, dhe pasi iteratori i ciklit kalon nĂ« kĂ«tĂ« makros, ai pĂ«rcaktohet jashtĂ« vetĂ« ciklit dhe mbetet i aksesueshĂ«m pas ciklit. PĂ«rdorimi i standardit C99 do tĂ« lejonte pĂ«rkufizimin e variablave pĂ«r ciklin nĂ« bllokun for(), çka do ta zgjidhte problemin pa shpikur rruge alternative.
Linus Torvalds u pajtua me idenĂ« e implementimit tĂ« mbĂ«shtetjes pĂ«r specifikime mĂ« tĂ« reja dhe sugjeroi kalimin nĂ« bĂ«rthamĂ«n 5.18 nĂ« pĂ«rdorimin e standardit C11, i publikuar nĂ« vitin 2011. GjatĂ« verifikimit paraprak, ndĂ«rtimi nĂ« GCC dhe Clang nĂ« modin e ri kaloi pa disfundime. NĂ«se gjatĂ« testimit mĂ« tĂ« kujdesshĂ«m nuk do tĂ« dalin probleme tĂ« paparashikuara, opsioni ââstd=gnu89â nĂ« skriptedie pĂ«r ndĂ«rtimin e bĂ«rthamĂ«s 5.18 do tĂ« zĂ«vendĂ«sohet me ââstd=gnu11 -Wno-shift-negative-valueâ. U shqyrtua gjithashtu mundĂ«sia e pĂ«rdorimit tĂ« standardit C17, por nĂ« kĂ«tĂ« rast do tĂ« duhej tĂ« rritej versioni minimal i mbĂ«shtetur nga GCC. Inkuadrimi i mbĂ«shtetjes pĂ«r C11 pĂ«rputhet me kĂ«rkesat aktuale pĂ«r versionin GCC (5.1).
Burimi: opennet.ru
