Original-URL des Artikels: https://www.golem.de/news/linux-dri-chromium-sandbox-kann-grafiktreiber-abstuerze-verursachen-1410-109602.html    Veröffentlicht: 02.10.2014 14:37    Kurz-URL: https://glm.io/109602

Linux-DRI

Chromium-Sandbox kann Grafiktreiber-Abstürze verursachen

Schon kleine Änderungen an den OpenGL-Treibern unter Linux können für Abstürze von Chromium sowie des Treibers selbst sorgen. Ein Intel-Entwickler sieht den Grund dafür in dem Sandbox-Mechanismus des Browsers.

Als "unglaublich anfällig" beschreibt der Intel-Angestellte Keith Packard die GPU-Sandbox des Browsers Chromium. Denn "es sieht danach aus, dass diese sehr genaue Details einer OpenGL-Implementierung für jeden einzelnen Treiber kennen muss, auf dem sie läuft". Darüber hinaus enthalte die Technik wohl eine Liste verschiedener Dateien und Modi, die der Treiber an die Funktion open übergebe. Deshalb könnten bereits kleine Veränderungen im Verhalten eines Treibers zu Abstürzen führen, die dann auch den Browser selbst betreffen.

Diesen Schluss zieht der langjährige X11-Entwickler nach der Analyse eines Fehlers, auf den er aufmerksam gemacht wurde und den er in seinem Blog näher beschreibt. Demnach stürzt der Browser bei der Verwendung der Direct Rendering Infrastructure (DRI) in Version 3 mit dem Intel-Treiber ab. Wird allerdings DRI2 verwendet, geschieht das nicht.

Um den Fehler zu finden, musste Packard zunächst den GPU-Prozess debuggen. Dieser wird als eigenständiger Prozess ausgelagert und läuft mehr oder weniger unabhängig vom eigentlichen Browser. Er hat nur sehr wenige Berechtigungen auf dem Betriebssystem, was wohl die Sicherheit des Browsers erhöhen soll. Allerdings erschwert dies auch das Auffinden von Fehlern, wie Packard berichtet.

Nachdem der Entwickler den Code in Mesa um einige Fehlermeldungen erweiterte, sei klar zu erkennen gewesen, warum die Anwendung beim ersten Zugriff auf einen durch DRI3 allozierten Puffer mit einer Schutzverletzung abstürzt. Denn der Speicher für Puffer eines sogenannten Fence-Objekts wird durch das Erzeugen einer temporären Datei mit Hilfe der Funktion open zugewiesen. Diese Funktion wird jedoch durch die Chromium-Sandbox anders ausgewertet als dies unter einem beliebigen System mit der Glibc zu erwarten wäre.

Wird der Browser mit deaktivierter Sandbox gestartet, tritt der Fehler wie zu erwarten nicht auf. Ein derartiges Verhalten des Browsers eigne sich entsprechend nicht für die grafischen Oberflächen unter Linux, so Packard.  (sg)


Verwandte Artikel:
Google: Chromebooks bekommen "Linux-VMs" und "Terminal"   
(27.02.2018, https://glm.io/133030 )
Sandbox-Leak: Daten über die Antiviren-Cloud herausschmuggeln   
(29.07.2017, https://glm.io/129188 )
Nouveau: Nvidia versucht, alles zu verstecken   
(04.02.2018, https://glm.io/132571 )
Linux: AMDs Vega mit freiem Treiber deutlich schneller   
(15.08.2017, https://glm.io/129481 )
Juli 2018: Chrome bestraft Webseiten ohne HTTPS   
(09.02.2018, https://glm.io/132689 )

© 1997–2019 Golem.de, https://www.golem.de/