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.

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.


eye home zur Startseite
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. Professional IT Consultant Automotive Marketing und Sales (m/w)
    T-Systems International GmbH, Leinfelden-Echterdingen
  2. Trainee (m/w) IT-Anwendungen
    Süwag Energie AG, Frankfurt am Main
  3. NetCracker Senior Architect / Designer OSS (m/w)
    T-Systems International GmbH, Berlin
  4. Consultant (m/w) Business Intelligence (Reporting)
    T-Systems on site services GmbH, Nürnberg

Detailsuche



Anzeige
Top-Angebote
  1. Fallout 4 Uncut USK 18 - PS4
    24,99€ inkl. Versand
  2. Fallout 4 Uncut USK 18 - Xbox One
    24,99€ inkl. Versand
  3. World of Warcraft - PC
    4,99€ inkl. Versand

Weitere Angebote


Folgen Sie uns
       

  1. Section Control

    Bremsen vor Blitzern soll nicht mehr vor Bußgeld schützen

  2. Beam

    ISS-Modul erfolgreich aufgeblasen

  3. Arbeitsbedingungen

    Apple-Store-Mitarbeiterin gewährt Blick hinter die Kulissen

  4. Modulares Smartphone

    Project-Ara-Ideengeber hat von Google mehr erwartet

  5. Telekom-Konzernchef

    "Vectoring schafft Wettbewerb"

  6. Model S

    Teslas Autopilot verursacht Auffahrunfall

  7. Security

    Microsoft will Passwort 'Passwort' verbieten

  8. Boston Dynamics

    Google will Roboterfirma an Toyota verkaufen

  9. Oracle-Anwältin nach Niederlage

    "Google hat die GPL getötet"

  10. Selbstvermessung

    Jawbone steigt offenbar aus Fitnesstracker-Geschäft aus



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Googles Neuvorstellungen: Alles nur geklaut?
Googles Neuvorstellungen
Alles nur geklaut?
  1. Google I/O Android Auto wird eine eigenständige App
  2. Jacquard und Soli Google bringt smarte Jacke und verbessert Radar-Chip
  3. Modulares Smartphone Project Ara soll 2017 kommen - nur noch teilweise modular

Cloudready im Test: Ein altes Gerät günstig zum Chromebook machen
Cloudready im Test
Ein altes Gerät günstig zum Chromebook machen
  1. Chrome OS Android-Apps kommen auf Chromebooks
  2. Acer-Portfolio 2016 Vom 200-Hz-Curved-Display bis zum 15-Watt-passiv-Detachable

Unternehmens-IT: Von Kabelsalat und längst überfälligen Upgrades
Unternehmens-IT
Von Kabelsalat und längst überfälligen Upgrades
  1. Sprachassistent Voßhoff will nicht mit Siri sprechen
  2. LizardFS Software-defined Storage, wie es sein soll
  3. HPE Hyper Converged 380 Kleines System für das schnelle Erstellen von VMs

  1. Re: Was ein Unsinn...

    dev_null | 17:12

  2. Re: Und wenn man zu langsam fährt?

    bplhkp | 17:10

  3. Re: Na toll..

    Berner Rösti | 17:09

  4. Re: Keinerlei Kontrolle

    Bautz | 17:08

  5. Ich weiß nicht was du meinst

    deus-ex | 17:06


  1. 12:45

  2. 12:12

  3. 11:19

  4. 09:44

  5. 14:15

  6. 13:47

  7. 13:00

  8. 12:30


  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