Abo
  • Services:
Anzeige

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.

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.

Anzeige

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.


eye home zur Startseite
phpwutz 13. Jun 2008

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

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...

md666 14. Mai 2008

??? ist doch langweilig Balmer ist viel krasser!!! http://www.youtube.com/watch?v...

IckeImmerZweima... 14. Mai 2008

... ist nur rechtens! Die haben das verdient, die alten Quicktime-Penner-Gaylords.



Anzeige

Stellenmarkt
  1. Fraunhofer-Institut für Materialfluss und Logistik, Dortmund
  2. T-Systems International GmbH, Wolfsburg
  3. K+S, Kassel
  4. Vodafone Kabel Deutschland GmbH, Berlin


Anzeige
Blu-ray-Angebote
  1. 18,00€ (ohne Prime bzw. unter 29€-Einkaufswert zzgl. 3€ Versand)
  2. (u. a. Die Goonies, John Mick, Auf der Flucht, Last Man Standing)
  3. (u. a. Django, Elysium, The Equalizer, White House Down, Ghostbusters 2)

Folgen Sie uns
       

  1. Fujifilm

    Neue Sensoren und besserer Autofokus für X-Kameras

  2. Streaming

    Netflix zeigt Rekordwachstum

  3. Messsucherkamera

    Leica M10 schrumpft trotz Vollformatsensor

  4. Halo Wars 2 angespielt

    Mit dem Warthog an die Strategiespielfront

  5. Hoverbike

    US-Armee fliegt wie Luke Skywalker

  6. Gulp-Umfrage

    Welche Kenntnisse IT-Freiberufler brauchen

  7. HPE

    650 Millionen Dollar für den Einstieg in die Hyperkonvergenz

  8. Begnadigung

    Danke, Chelsea Manning!

  9. Android 7

    Nougat für Smartphones von Sony, Oneplus, LG und Huawei

  10. Simplygon

    Microsoft reduziert 3D-Details



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Glasfaser: Nun hängt die Kabel doch endlich auf!
Glasfaser
Nun hängt die Kabel doch endlich auf!
  1. Fake News Für Facebook wird es hässlich
  2. Nach Angriff auf Telekom Mit dem Strafrecht Router ins Terrorcamp schicken oder so
  3. Soziales Netzwerk Facebook wird auch Instagram kaputt machen

Western Digital Pidrive im Test: Festplatte am Raspberry Pi leicht gemacht
Western Digital Pidrive im Test
Festplatte am Raspberry Pi leicht gemacht
  1. Sopine A64 Weiterer Bastelrechner im Speicherriegel-Format erscheint
  2. Bootcode Freie Firmware für Raspberry Pi startet Linux-Kernel
  3. Raspberry Pi Compute Module 3 ist verfügbar

Autonomes Fahren: Wenn die Strecke dem Zug ein Telegramm schickt
Autonomes Fahren
Wenn die Strecke dem Zug ein Telegramm schickt
  1. Fahrgastverband "WLAN im Zug funktioniert ordentlich"
  2. Deutsche Bahn WLAN im ICE wird kostenlos
  3. Mobilfunk Telekom baut LTE an Regionalbahnstrecken aus

  1. Re: Hoffentlich lebt sie lange genug...

    david_rieger | 09:48

  2. Re: was völlig fehlt

    Oktavian | 09:48

  3. Re: Jetzt fragt man sich warum die Uhren der...

    Der Spatz | 09:47

  4. Re: Click Bait

    FriedDuck | 09:45

  5. Dank Qualcomm nicht für Z3 und Z3C

    RedRanger | 09:44


  1. 09:35

  2. 09:08

  3. 09:04

  4. 09:01

  5. 08:46

  6. 19:06

  7. 17:37

  8. 17:23


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel