25 Jahre alter Unix-Fehler behoben

Fehler betrifft alle BSD-Varianten

OpenBSD-Entwickler Marc Balmer hat einen Fehler im Betriebssystem, der bereits seit 1983 besteht, behoben. Der Fehler hatte zur Folge, dass ein Samba-Server abstürzte, wenn er Dateien von einem MS-DOS-Dateisystem anbieten sollte. Laut Balmer findet sich der Fehler in allen BSD-Varianten.

Anzeige

Aufmerksam gemacht wurde Balmer durch einen OpenBSD-Anwender, der ihm berichtete, dass der Samba-Dateiserver abstürzte, als er ein MS-DOS-Dateisystem freigeben sollte. Dabei handelte es sich um einen selbstkompilierten Samba, nicht um ein OpenBSD-Paket, berichtet Balmer in seinem Blog. Dennoch wollte er das Problem verfolgen.

Die Samba-Entwickler, mit denen Balmer Kontakt aufnahm, gaben an, dass ihre Software tatsächlich einen Workaround nutzt, um auf BSD-Systemen auf die Verzeichnisse zuzugreifen. Der Programmcode zum Lesen von Verzeichnissen sei in allen BSDs fehlerhaft.

Samba verwendet die Funktionen telldir()/readdir() sowie seekdir()/readdir(), um einen internen Cache aufzubauen, was vor allem dazu dient, den Verzeichniszugriff für Windows-Clients zu beschleunigen. Dafür geht die Software mit readdir() wiederholt über ein Verzeichnis und speichert die Werte intern. Später werden diese Daten genutzt, um mit seekdir() die Verzeichnisposition aufzufinden und mit readdir() die eigentlichen Daten zu lesen. Wird nun zwischen dem Erstellen des Caches und dem Zugriff eine Datei entfernt, kann es vorkommen, dass der Cache nicht mehr an die richtige Stelle zeigt, womit telldir() nicht mehr richtig funktioniert.

Samba verwendet daher einen Workaround, in dessen Kommentar steht, dass FreeBSD, OpenBSD und eventuell auch NetBSD die unlink()-Funktion nicht richtig handhaben. Durch die Änderungen am Quelltext würden auch Leistungs- und Speicherprobleme unter BSD behoben.

Während sich das Leistungsproblem zumindest für OpenBSD als nicht vorhanden entpuppte, untersuchte Balmer den seekdir()-Fehler weiter, fand ihn und behob ihn. Tatsächlich gaben die Funktionen unter Umständen falsche Werte zurück. Dieser Fehler entstand allerdings schon, als 4.2BSD veröffentlicht wurde - im August 1983. Laut Balmer steckt er daher in allen BSD-Varianten, also auch in MacOS X.

Der für seine Arbeit an BSD bekannte Marshall Kirk McKusick, der die *dir()-Bibliothek entwickelt hat, schrieb an Balmer: "du hast vermutlich einen meiner Fehler behoben :-)". Bevor es die *dir()-Befehle gab, griffen Programme einfach direkt auf Verzeichnisse zu. Damals habe er 22 Programme - ein hoher Prozentsatz der vorhandenen Unix-Programme dieser Zeit - aktualisieren müssen, damit sie die *dir()-Aufrufe verwenden, schreibt McKusick.

Balmer hat den Fehler nach eigenen Angaben auch FreeBSD, NetBSD und DragonflyBSD gemeldet, die ihn bereits behoben haben. Bei Apple kenne er niemanden, sie würden es schon mitbekommen, schreibt er in den Kommentaren zu seinem Blog-Eintrag.


phpwutz 13. Jun 2008

naja, sind ja News - die solln ja auch interessant klingen, nicht? also einfach mal ein...

Peter Smith 15. Mai 2008

siehe Themazeile

X-Man 14. Mai 2008

Unbekannter Golem.de-Mitarbeiter: "DU SOLLST SCHEISSE FRESSEN !!!"

Lord_Pinhead 14. Mai 2008

telnet irc.phat-net.de 6667 auf Dos macht doch Spaß >:p Wozu etwas anderes Starten...

Lord_Pinhead 14. Mai 2008

Würde mich auch nicht interessieren ;) Und wer sich darüber aufregt das eine News für...

Kommentieren




Anzeige
  1. Anwendungs- und Prozessberater/in
    HÜGLI NAHRUNGSMITTEL GMBH, Radolfzell
  2. Stellvertretender Teamleiter (m/w) IT-Helpdesk
    Rhenus AG & Co. KG, Holzwickede
  3. Fachinformatiker Multimedia (m/w)
    CT Creative Technology GmbH & Co. KG, Nürtingen
  4. Softwareentwickler / Softwareentwicklerin
    BBF GmbH, München und Dresden

 

Detailsuche


Folgen Sie uns
       

  1. Steve Wilhite

    Ehrung für den Erfinder des Jif-Formates

  2. Seagate

    4-TByte-Festplatte für DVR und Videoüberwachung

  3. Microsoft

    Viren kommen wieder

  4. Seattle Campus

    Amazon baut sich einen Wald in riesigen Glaskugeln

  5. Xbox One

    Big Brother im Wohnzimmer

  6. Brian Krzanich

    Neuer Intel-Chef will Entwicklung persönlich kontrollieren

  7. Klarmobil Allnet-Starter

    Freiminuten, Gratis-SMS und Datenflatrate für 10 Euro

  8. Helios

    Fahrradlenker mit Blinker, Licht und GPS

  9. vCloud Hybrid Service

    VMware startet eigene Public-Cloud

  10. Google-Smartphone

    Galaxy S4 mit purem Android wird nur in den USA verkauft



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Cast AR: Gefeuerte Valve-Entwickler zeigen Räumliche-Objekte-Brille
Cast AR
Gefeuerte Valve-Entwickler zeigen Räumliche-Objekte-Brille

Zwei ehemalige Valve-Mitarbeiter haben auf einer Entwicklermesse eine revolutionäre AR-Brille gezeigt. Damit sollen sich computergenerierte Objekte räumlich korrekt in die Echtwelt einblenden lassen.


Electronic Arts: Leitender EA-Entwickler bezeichnet Wii U als "Mist"
Electronic Arts
Leitender EA-Entwickler bezeichnet Wii U als "Mist"

Erst erklärt Electronic Arts, keine Spiele mehr für die Wii U produzieren zu wollen, nun schimpft ein leitender Entwickler über die Konsole. Immerhin: Ein anderer Publisher stärkt Nintendo den Rücken.

  1. Kein Fifa EA entwickelt nicht mehr für die Wii U
  2. Nintendo Smartphone-Apps für die Wii U
  3. Nintendo Großes Update für die Wii U verfügbar

Blackberry Z10 im Langzeittest: Tausche Android gegen Blackberry
Blackberry Z10 im Langzeittest
Tausche Android gegen Blackberry

Mit dem Z10 versucht Blackberry ein Comeback im Smartphone-Markt. Auch Android-Anwendungen lassen sich auf dem Gerät installieren. Golem.de-Autor Tobias Költzsch hat zwei Wochen lang sein Galaxy S3 gegen das Z10 getauscht und im Langzeittest überprüft, wie schwer ein Umstieg ist.

  1. Smartphones Blackberry Q5 im Juli, Blackberry 10.1 wird verteilt
  2. Mobilfunk Fast drei Viertel der Smartphones laufen mit Android
  3. Blackberry-Chef "In fünf Jahren gibt es keine Tablets mehr"

Zum Artikel