glibc 2.25 enthält lang erwarteten getrandom-Wrapper

February 6, 2017 - 10:30 pm in Software-Entwicklung

[ad_1]

Der Linux-Kernel kennt die Funktion seit 2014. Obwohl die Umsetzung nun ein einfacher Wrapper ist, war die Implementierung mit einigen Hürden verbunden.

Die GNU C Library (glibc) erscheint alle sechs Monate und bringt meist zahlreiche unspektakuläre Erweiterungen mit sich. Das Release 2.25 ist insofern bemerkenswert, als es den lang erwarteten Support für die Linux-Systemfunktionen getrandom() und getentropy() enthält. Der zugehörige Issue zur Implementierung existiert bereits seit zweieinhalb Jahren. Der Aufhänger war seinerzeit das Erscheinen des Linux-Kernels mit der Versionsnummer 3.17, der die entsprechende Funktionen enthält.

Ein Artikel auf LWN.net erklärte Mitte Januar die Hintergründe der Verzögerung. Ein Grund ist demnach, dass sich einige Entwickler mit der Implementierung eines Wrappers für Linux-spezifische Systemaufrufe schwer taten. In der Diskussion schrieb Joseph Myers vom GCC Steering Committee von einem De-facto-Standard, der alle Syscalls bis zu Linux 3.2 beziehungsweise glibc 2.15 enthält, aber seitdem keine späteren Aufrufe, was wenig sinnvoll sei. Seitdem existiert ein Entwurf zum Umgang mit Wrappern für Systemaufrufe, der nach wie vor als WiP (Work in Progress, in Bearbeitung befindlich) gekennzeichnet ist.

Emulation und Abbruchspunkt

Die anfänglichen Ansätze für getrandom versuchten sich zudem an einer Emulation für ältere Linuxversionen, denen der Systemaufruf fehlt. Letztlich entschieden sich die Entwickler jedoch dagegen, sodass eine Verwendung auf älteren Systemen den Fehlercode ENOSYS zurückliefert, der auf eine nicht implementierte Funktion hinweist.

Eine weitere Hürde bot die Diskussion, ob der Aufruf der Funktion als Abbruchpunkt (cancellation point) für den aktuellen Thread gelten solle oder nicht. Auch wenn getrandom normalerweise den aktuellen Thread nicht blockiert, ist rein theoretisch eine unbegrenzte Blockierung möglich. In glibc 2.25 ist die Funktion nun als Abbruchspunkt umgesetzt.

Die endgültige Implementierung als reiner Wrapper wirkt hinsichtlich der zweieinhalb Jahre währende Entstehungsgeschichte erstaunlich simpel:

ssize_t 
getrandom (void *buffer, size_t length, unsigned int flags)
{
return SYSCALL_CANCEL (getrandom, buffer, length, flags);
}

Zu den weiteren Neuerungen in glibc 2.25 gehören unter anderem die Funktionen strfromd, strfromf und strfroml zum Wandeln von Fließkommazahlen in Strings und neue math.h-Features. Die vollständige Liste findet sich in der offiziellen Ankündigung auf der Mailingliste. (rme)

[ad_2]

Read more on: Source

Überwachungsfirma Cellebrite: Hacker veröffentlicht iPhone-Cracking-Tools

February 6, 2017 - 10:15 pm in Security

[ad_1] Wenn Software zum Knacken von Smartphones existiert, dann gelangt diese auch in die Hände Dritter, erklärt der Hacker, der die angeblich von…

Linux 4.10: Neue Paketfiltertechnik und bessere WLAN-Performance

February 6, 2017 - 4:50 am in OSS

[ad_1] Der Mitte Februar erwartete Linux-Kernel 4.10 bringt Änderungen, die WLAN-Verbindungen schneller und robuster machen. Ferner gibt es eine neuen…

Testing: PHPUnit 6.0 setzt PHP 7 voraus

February 6, 2017 - 4:25 am in Software-Entwicklung

[ad_1] Ohne Support für PHP 5.6, dafür aber aufgeräumter und mit zusätzlichen Möglichkeiten zum Annotieren und Filtern steht nun Version 6.0 des PHP-Testframeworks zum Download bereit. Mit der sechsten Hauptversion des Werkzeugs für PHP-Unit-Tests stellen…

Attacke aufs Dark Web legt viele Dienste lahm

February 6, 2017 - 4:10 am in Security

[ad_1] Ein Angriff auf den wahrscheinlich größten Hoster von Tor-Hidden-Services, Freedom Hosting II, hat viele Angebote im Dark Web lahmgelegt. Unbekannte Angreifer haben die Datenbank von Freedom Hosting II, dem derzeit wohl größten Hoster von Tor-Diensten,…

IT-Neuorganisation in München: Gnadenfrist für LiMux

February 5, 2017 - 10:45 am in OSS

[ad_1] Die schwarz-rote Münchner Koalition hat sich darauf geeinigt, ein eigenes IT-Referat zu schaffen und die Rechnerlandschaften stärker zu koordinieren. Bis 2020 soll ein "einheitlicher städtischer Standard" für Bürosoftware kommen. Die regierenden…

Developer Snapshots: Programmierer-News in ein, zwei Sätzen

February 5, 2017 - 10:22 am in Software-Entwicklung

[ad_1] heise Developer fasst jede Woche bisher vernachlässigte, aber doch wichtige Nachrichten zu Tools, Spezifikationen oder anderem zusammen – dieses Mal u.a. mit TypeScript, Rust, Kotlin, Microsoft Edge, GitHub und Node.js. Hier die durchaus subjektive…

Kodi-Erweiterung machte Anwender zu Botnetz-Zellen

February 5, 2017 - 10:05 am in Security

[ad_1] Anwender des Plug-ins "Exodus" für das Media-Center Kodi wurden zu unfreiwilligen Teilnehmern eines Botnets, das gezielte DDoS-Angriffe fuhr. Deren Ziel: Websites von Konkurrenten. Die populäre "Exodus"-Erweiterung für das quelloffene Media-Center…

GVFS: Microsoft will die Arbeit mit Git beschleunigen

February 4, 2017 - 4:41 pm in OSS

[ad_1] Mit dem Git Virtual File System will Microsoft die Arbeit mit der Versionsverwaltung deutlich beschleunigen. GVFS soll automatisch ausschließlich die Dateien berücksichtigen, die der Nutzer auch wirklich benötigt. Unter dem Namen Git Virtual File…

GVFS: Microsoft will die Arbeit mit Git beschleunigen

February 4, 2017 - 4:20 pm in Software-Entwicklung

[ad_1] Mit dem Git Virtual File System will Microsoft die Arbeit mit der Versionsverwaltung deutlich beschleunigen. GVFS soll automatisch ausschließlich die Dateien berücksichtigen, die der Nutzer auch wirklich benötigt. Unter dem Namen Git Virtual File…