Im Linux-Kernel 5.18 planen sie, die Verwendung des Standards der Programmiersprache C11 zuzulassen.

Im Verlauf der Diskussion ĂŒber eine Reihe von Patches zur Behebung von mit der Spectre-SicherheitsanfĂ€lligkeit verbundenen Problemen im Code fĂŒr die Verarbeitung von verketteten Listen wurde deutlich, dass das Problem eleganter gelöst werden könnte, wenn im Kernel Code in C zugelassen wĂ€re, der einer neueren Version des Standards entsprĂ€che. Der derzeit hinzuzufĂŒgende Kernel-Code muss der ANSI-C-Spezifikation (C89) entsprechen, die bereits 1989 erstellt wurde.

Das mit Spectre verbundene Problem im Code wurde durch die fortgesetzte Verwendung eines separat definierten Iterators nach der Schleife verursacht – zum Durchlaufen der Elemente einer verketteten Liste wird ein Makro verwendet, und da der Iterator der Schleife an dieses Makro ĂŒbergeben wird, wird er außerhalb der Schleife definiert und bleibt nach der Schleife verfĂŒgbar. Die Verwendung des C99-Standards wĂŒrde es ermöglichen, Variablen fĂŒr die Schleife im Block for() zu definieren, was das Problem ohne Umgehungen lösen wĂŒrde.

Linus Torvalds stimmte der Idee zu, die UnterstĂŒtzung neuerer Spezifikationen umzusetzen, und schlug vor, im Kernel 5.18 auf die Verwendung des 2011 veröffentlichten C11-Standards umzusteigen. Bei einer vorlĂ€ufigen ÜberprĂŒfung verlief die Kompilierung in GCC und Clang im neuen Modus ohne Abweichungen. Falls bei einer grĂŒndlicheren Testphase keine unerwarteten Probleme auftreten, wird in den Build-Skripten des Kernels 5.18 die Option ‘—std=gnu89’ durch ‘—std=gnu11 -Wno-shift-negative-value’ ersetzt. Es wurde auch in Betracht gezogen, den C17-Standard zu verwenden, jedoch mĂŒsste in diesem Fall die minimal unterstĂŒtzte GCC-Version erhöht werden. Die UnterstĂŒtzung von C11 passt jedoch zu den aktuellen Anforderungen an die GCC-Version (5.1).

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster