I Linux-kÀrnan 5.18 planeras anvÀndning av C11-standarden tillÄtas.

Under diskussion om en uppsÀttning patchar för att ÄtgÀrda sÀkerhetsproblem relaterade till Spectre i koden för att hantera lÀnkade listor, stod det klart att problemet skulle kunna lösas mer elegant om kÀrnan tillÀt C-kod som följer en nyare standard. För nÀrvarande mÄste den kod som lÀggs till kÀrnan följa ANSI C-specifikationen (C89), som formades redan 1989.

Spectre-relaterade problem i koden orsakades av fortsatt anvĂ€ndning av en separat definierad iterator efter loopen — för att iterera över elementen i den lĂ€nkade listan anvĂ€nds en makro och eftersom loopens iterator överförs till detta makro, definieras den utanför sjĂ€lva loopen och förblir tillgĂ€nglig efter loopen. AnvĂ€ndningen av standarden C99 skulle ha möjliggjort att definiera variabler för loopen inom for()-blocket, vilket skulle ha löst problemet utan att behöva hitta pĂ„ omvĂ€gar.

Linus Torvalds gick med pĂ„ idĂ©n om att implementera stöd för nyare specifikationer och föreslog att kĂ€rna 5.18 skulle anvĂ€nda C11-standarden, som publicerades 2011. Vid en preliminĂ€r kontroll gick byggnader i GCC och Clang i det nya lĂ€get utan avvikelser. Om ingen ovĂ€ntad problem upptĂ€cks vid mer noggrannt testande, kommer alternativet ‘—std=gnu89’ i byggningsskripten för kĂ€rna 5.18 att ersĂ€ttas med ‘—std=gnu11 -Wno-shift-negative-value’. Möjligheten att anvĂ€nda standarden C17 diskuterades ocksĂ„, men i sĂ„ fall skulle det ha krĂ€vts att den minimi stödjande versionen av GCC höjdes. Att inkludera stöd för C11 ligger inom de nuvarande kraven för GCC-version (5.1).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster