Fuer Kernelentwicklung? Keine Ahnung. Keine Erfahrung auf diesem Gebiet. Ist fuer den Kernel Adresse 0 nicht eine Adresse wie jede andere auch? Dann muesste man sie auch dereferenzieren koennen.
Naja, hier werde ich mit Sicherheit keine vernuenftige Antwort erhalten. Glaube kaum, dass sich hier Kernelentwickler aufhalten. :-D
Urheberrecht = Genozid schrieb:
-------------------------------------------------------
Schonmal nachgedacht, wie sich ein Jude bei so einem Spruch fühlt????
*plonk*
Dein Helfer schrieb:
-------------------------------------------------------
> Urheberrecht = Genozid schrieb:
> --------------------------------------------------
> -----
>
> Schonmal nachgedacht, wie sich ein Jude bei so
> einem Spruch fühlt????
>
> *plonk*
>
Ich richte mein Leben nicht danach aus, was ein Jude denken oder fuehlen koennte.
Jeder so wie er kann.
*Plonk*
>Schonmal nachgedacht, wie sich ein Jude bei so einem Spruch fühlt????
Oder ein Tutsi oder ein Armenier oder ein Bosnier oder .....
Schreibend ist sie wahrscheinlich genau aus dem Grund gesperrt.
Satan schrieb:
-------------------------------------------------------
> Schreibend ist sie wahrscheinlich genau aus dem
> Grund gesperrt.
Aber nicht für Kernelcode und daher wird es exploitbar.
@golem:
"Compiler-Optimierungen sind offenbar schuld an Problem"
Nein, Schuld an dem Problem ist ein schludriger Programmierer
der mit Pointern nicht umgehen kann. Dass der Compiler in
(höheren) Optimierungsstufen die danach folgende Abfrage
eliminiert, kann man durchaus als "korrekt" annehmen da
"eigentlich" schon vorher eine segment violation erfolgen
würde weshalb die später stattfolgende Überprüfung sinnfrei
ist.
Tritt halt bei Kernelcode (und Linux) nicht _unbedingt_
auf und es wäre ganz gut wenn der Compiler eine solche Codepfad
Eliminierung mit einer deutlichen Warnung kommentieren würde.
In diesem Fall hätte es aber vermutlich nichts genutzt weil
jemand der uninitialisierte Pointer erstmal lustig dereferenziert
um danach Sicherheitsabfragen damit zu machen, vermutlich
eine solche Warnung eh ignoriert oder nicht verstanden hätte.
Guter Code-Stil ist es sicher nicht, aber im Kernel-Space ist ein lesen von 0x00000000 nun mal nicht fatal; es handelt sich also um eine Fehlannahme des Compilers über die "Zielplattform".
Einfach mit -fno-delete-null-pointer-checks kompilieren ... insofern liegt der Fehler eigentlich in der Kernel-Makefile, wo dieses Flag eben aus obigem Grund standard sein sollte.
Urheberrecht = Genozid schrieb:
-------------------------------------------------------
> Fuer Kernelentwicklung? Keine Ahnung. Keine
> Erfahrung auf diesem Gebiet. Ist fuer den Kernel
> Adresse 0 nicht eine Adresse wie jede andere auch?
> Dann muesste man sie auch dereferenzieren
> koennen.
Ja, aber das Problem ist hier folgendes (Beispiel):
int i = 1;
(... Code der i nicht ändert/ändern kann ...)
if (0 == i) {
OhShit();
}
Hier kann ein Compiler feststellen das i, nach der Zuweisung von 1, nicht geändert werden kann (kein i = f(), kein i = ..., kein f(&i)) und damit kann er das ganze if (...) Konstrukt einfach vergessen.
Bei dem Bug handelt es sich zwar um einen Zeiger, aber das macht erstmal keinen Unterschied, nur eben dadurch das der Zugriff im Kernel-Modus passiert gilt "all bets are off".
Zeigt nur wieder mal das die "Anzahl der Fehler" in der Realität nur der "Anzahl der vorhandenen Fehler" - "Anzahl der gefundenen Fehler" entspricht. Code reviews sind da wirklich wichtig, nur (das ist halt so) ändert sich bei Linux zu oft zu viel als das solche wirklich möglich wären. Ist halt der Preis für ein eher auch für Average Joe geeigneteres System als, von mir aus, OpenBSD, aber okay. Panzer fahren weil die im Crashtest so gut abschneiden macht ja auch keiner und man muss halt abwägen und das kann einem keine SW der Welt abnehmen.
Pnazer sind nur für ihren Zweck sicher.
(Panzerung gegen beschuss)
Wenn du damit gegen eine Wand fährst bist du toter als wenn du in nem Auto in eine Wand fährst:
sonnst WORD
> Pnazer sind nur für ihren Zweck sicher.
> Wenn du damit gegen eine Wand fährst bist du toter als wenn du in nem Auto in eine Wand fährst
Warum denn das? o.O
___
Die ganz grossen Wahrheiten sind EINFACH!
Wirkung und Gegenwirkung.
Variation und Selektion.
Wie im grossen, so im kleinen.
> Guter Code-Stil ist es sicher nicht, aber im Kernel-Space ist ein lesen von 0x00000000 nun mal nicht fatal; es handelt sich also um eine Fehlannahme des Compilers über die "Zielplattform".
> Einfach mit -fno-delete-null-pointer-checks kompilieren ... insofern liegt der Fehler eigentlich in der Kernel-Makefile, wo dieses Flag eben aus obigem Grund standard sein sollte.
Hast du das mal einem der Kernel-Entwickler verklickert?
___
Die ganz grossen Wahrheiten sind EINFACH!
Wirkung und Gegenwirkung.
Variation und Selektion.
Wie im grossen, so im kleinen.
Da hat er aber recht. Ich find' den Spruch gut.
weil dann hitler kommt und dir ne granate in deinen panzer wirft
buuuuu buuu er hat htler gesagt. IHR LAPPEN WAAAA ICH HASSE EUCH ALLE
PZ schrieb:
-------------------------------------------------------
> Pnazer sind nur für ihren Zweck sicher.
>
Sicher. Wählt Pnazer!
Der Kaiser! schrieb:
-------------------------------------------------------
> --------------------------------------------------
> -----------------------
> In Zukunft: Grundeinkommen
wenn dir Hartz4 nicht reicht, dann probiers mal mit selber arbeiten gehen!
Der Kaiser! schrieb:
-------------------------------------------------------
> > Pnazer sind nur für ihren Zweck sicher.
>
> > Wenn du damit gegen eine Wand fährst bist du
> toter als wenn du in nem Auto in eine Wand fährst
> Warum denn das? o.O
Die Knautschzone knautscht sich beim Panzer so schlecht. Da reichen ca. 30-35km/h, wenn die Wand nicht nachgibt oder man statt der Wand nen anderen Panzer rammt.
bin zwar kein kernelentwickler, aber das mit den NULL-pointern ist
x86 spezifisch (ka ob es andere architekturen gleich machen).
wird die addresse "0x0000000" aufgerufen kommt es zu einer "segmentation fault"
im code sollte deshalb immer überprüft weren ob die addresse ungleich null ist bevor die addresse verwendet wird.
if(!addresse)
programm stop / fehlerroutine ...
else(
normaler programmcode....
der bug im compiler macht diese überprüfung wirkungslos da einige funktionen (aus performancegründen) vorher ausgeführt werden als es im "geschriebenen" code steht.
Also handelt es sich um keinen Programmierfehler im kernel, sonderm im compiler. Nichtsdestotrotz ist die lücke vorhanden und muss asap gestopft werden.
-------
dieser post ist alles afaik -
wenns jmd besser weis melden :)
maximum dissaster schrieb:
-------------------------------------------------------
> Da hat er aber recht. Ich find' den Spruch gut.
Der Spruch ist kompletter Blödsinn und wenn man nix sagen darf, was jemandem ans Bein pissen könnte, dann kann man gar nichts mehr sagen.
Die Spinnerikaner (Amis) machen es auch gut mit dieser political correctness Scheisse vor.
Dennoch ist der Spruch Schwachsinn, lässt sich der ja auch noch auf Besitz im Allgemeinen ausweiten etwa 'Persönlicher Besitz = Genozid', rufen wir doch die Anarchisten wieder auf den Spielplan und die Kommunisten werden sich auch freuen.
Ich frage mich ausserdem, welches Volk hier getötet wird?
Urheberrecht worauf überhaupt? Welche Ideen töten hier Völker weil sie besessen werden?
Was ein Kernel Entwickler dazu sagt ist vollkommen egal. Relevant ist hier nur der C-Standard und der sagt, dass das dereferenzieren eines NULL Zeigers - unter x86 Linux ist der mit der Addresse 0 verknüpft - undefiniertes Verhalten auslöst, da niemals ein gültiges Element an dieser Addresse liegt.
Läst der Linux Kernel ein Objekt an dieser Stelle zu, so ist das Verhalten des ganzen Kernels - im Sinne von ISO C - undefiniert!
Kommentare: 170 | letzter Beitrag 15:54 Uhr
Kommentare: 94 | letzter Beitrag 26.05. 19:45
Kommentare: 70 | letzter Beitrag 18:13 Uhr
Kommentare: 69 | letzter Beitrag 17:31 Uhr
Kommentare: 57 | letzter Beitrag 17:52 Uhr
E-Mail an news@golem.de

Nach der Urteilsverkündung im Rechtsstreit zwischen Youtube und Gema fühlten sich beide Seiten als Gewinner. In Wahrheit gibt es aber nur einen Verlierer, bloggt Medienrechtsexperte Thomas Hoeren: die Gema.

Ein soziales Netzwerk für Pornografie muss seine Marke nicht an Facebook übergeben. Faceporn, ein norwegisches Unternehmen, freut sich über den Sieg vor einem kalifornischen Gericht.

Diablo 3 ist toll, sagen viele Spieler - Diablo 3 ist eine Stimulus-Response-Maschine, sagt Rainer Sigl. Der Blogger und leidenschaftliche Gamer erklärt, warum er sich Blizzards jüngstem Werk verweigert.

Renesas ist nach Elpida der zweite schwer angeschlagene japanische Chiphersteller. Renesas, das Hitachi, Mitsubishi Electric und NEC gehört, macht Verlust und will seine größte Fabrik verkaufen.

RIM soll in den kommenden Tagen erneut einen massiven Stellenabbau ankündigen. "Ich habe herausgefunden, welche Teile ich in meinem Puzzle nicht mehr benötige", sagte Firmenchef Thorsten Heins.

Ein britisches Blog will erfahren haben, dass Facebook den norwegischen Browserhersteller Opera Software kaufen will. Beide Unternehmen wollen sich dazu nicht äußern.