1. Foren
  2. Kommentare
  3. Security
  4. Alle Kommentare zum Artikel
  5. › GnuTLS: Fehlerhafte Zertifikate…

So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

  1. Thema
  1. 1
  2. 2
  3. 3

Neues Thema Ansicht wechseln


  1. So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: MrSpok 04.03.14 - 14:18

    Fehler macht jeder.

    Aber sprätestens beim Kompilieren solchen Codes sollte doch wegen "Unreachable code" eine Warnung oder ein Fehler produziert werden.

    Schon merkwürdig, dass sowas durchgeht.

    [EDIT]:
    Sieht so aus, als wäre das "goto cleanup" durch "goto fail" ersetzt worden.
    Ich dachte erst, die GOTOs hätten hintereinander gestanden.
    Dann gibt's natürlich keine Compiler-Warnung.

    Aber wer benutzt heutzutage eigentlich nocht GOTOs? Naja, das ist ein anderes Thema ...



    1 mal bearbeitet, zuletzt am 04.03.14 14:25 durch MrSpok.

  2. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: zampata 04.03.14 - 14:30

    irgendwo gabs mal eine Untersuchung, dass sowohl GCC als auch Clang in den Standardeinstellungen gar keine Warnung für unreachable Code ausspucken.
    GCC sogar nicht, wenn man dies explizit anfordert

  3. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: TheUnichi 04.03.14 - 14:32

    MrSpok schrieb:
    --------------------------------------------------------------------------------
    > Aber wer benutzt heutzutage eigentlich nocht GOTOs? Naja, das ist ein
    > anderes Thema ...

    Da hat jemand mal mit VB rumgespielt und macht den Pro...

    Die meisten Low-Level Sprachen arbeiten mit GOTOs.

    Die Jumps in ASM sind auch GOTOs.

    GOTO ist die Basis für die prozedurale und objektorientierte Programmierung, die du betreibst.

    Der einzige Grund, warum man GOTO nicht nutzen sollte, ist, weil es fehleranfällig ist, bei Programmierern, die schnell die Übersicht verlieren.
    Verlierst du die Übersicht nicht, sind GOTOs durchaus ein sinnvolles Konstrukt und ab und an, gerade in Low-Level Sprachen auch durchaus mal notwendig.

  4. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: Dadie 04.03.14 - 14:35

    MrSpok schrieb:
    --------------------------------------------------------------------------------
    > Fehler macht jeder.
    >
    > Aber sprätestens beim Kompilieren solchen Codes sollte doch wegen
    > "Unreachable code" eine Warnung oder ein Fehler produziert werden.
    >
    > Schon merkwürdig, dass sowas durchgeht.
    >
    > :
    > Sieht so aus, als wäre das "goto cleanup" durch "goto fail" ersetzt
    > worden.
    > Ich dachte erst, die GOTOs hätten hintereinander gestanden.
    > Dann gibt's natürlich keine Compiler-Warnung.
    >
    > Aber wer benutzt heutzutage eigentlich nocht GOTOs? Naja, das ist ein
    > anderes Thema ...

    Zu "Unreachable code" siehe : http://blog.fefe.de/?ts=adf5a1ff
    Zu GoTo :
    Richtig eingesetzt kann ein GOTO eine gute Möglichkeit sein Code wartbar zu halten. Gerade in einer Sprache ohne OO ist das gar nicht so unüblich. Teilweise ist der Code auch einfach sehr alt und damals hat man GOTO eben benutzt. Warum über die Jahre getesteten Code umwerfen? Die Gefahr beim Umschreiben oder Neuschreiben neue Bugs in den Code einzufügen ist viel größer als die Gefahren durch GOTO. Der Fail in diesem Fall lag nicht am GOTO sondern einfach am "Denkfehler" des Programmierers der Codezeilen. Das wäre genau so auch ohne GOTO passiert. Der Fehler sähe dann nur ggf. anders aus.

  5. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: ralf.wenzel 04.03.14 - 14:38

    MrSpok schrieb:
    --------------------------------------------------------------------------------
    > Fehler macht jeder.

    Tja, wenn Apple sowas passiert, wird nicht so rücksichtsvoll reagiert, da war bei Facebook, bei Heise und auch hier der Bär los.

  6. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: fletschge 04.03.14 - 14:43

    Mit welcher Argumentation wird "unreachable code" im gcc nicht mehr abgefangen?
    Ist doch durchaus ein sinnvoller Check?

  7. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: M.P. 04.03.14 - 14:44

    Die neue Schule ist ein try / catch mit einem throw ... an der Stelle, wo jetzt das goto steht ;-)

    Das ist dann wieder die "reine Informatiker-Schule"

  8. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: thomas001le 04.03.14 - 14:47

    Wie willst du sonst sowas machen, außer mit goto in C:

    {
    if(!good) goto cleanup;
    ..
    if(!good2) goto cleanup;
    ..
    cleanup:
    long_cleanup_code();
    }

  9. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: bstea 04.03.14 - 14:47

    TheUnichi schrieb:
    > GOTO ist die Basis für die prozedurale und objektorientierte
    > Programmierung, die du betreibst.
    >

    Nicht wirklich, dafür gibts CALLs.

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  10. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: acuntex 04.03.14 - 14:50

    thomas001le schrieb:
    --------------------------------------------------------------------------------
    > Wie willst du sonst sowas machen, außer mit goto in C:
    >
    > {
    > if(!good) goto cleanup;
    > ..
    > if(!good2) goto cleanup;
    > ..
    > cleanup:
    > long_cleanup_code();
    > }

    {
    if(!good)
    {
    long_cleanup_code_in_a_function();
    return;
    }
    ...
    if(!good2)
    {
    long_cleanup_code_in_a_function();
    return;
    }
    ...
    long_cleanup_code_in_a_function();
    }

    Spricht was dagegen? Klar, Redundanzen, ansonsten umgeht man so gotos ohne try-catch-finally.

    Ok, aber manch einer ist halt nunmal stolz auf "Holzhacker-Programmierung".



    3 mal bearbeitet, zuletzt am 04.03.14 14:52 durch acuntex.

  11. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: M.P. 04.03.14 - 14:50

    Nunja, jedes Switch-Konstrukt, jedes "if" und alle Schleifen werden wahrscheinlich intern wohl NICHT mit Calls abgearbeitet...

  12. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: bstea 04.03.14 - 14:50

    {
    if(!good) {cleanup(); return;}
    ..
    if(!good2) {cleanup(); return;}
    ..
    cleanup();
    }

    void cleanup() {long_cleanup_code(); }

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  13. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: M.P. 04.03.14 - 14:52

    So viele "returns" in einer Funktion sind aber auch nicht gerade sauber ;-)

  14. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: bstea 04.03.14 - 14:52

    Wäre auch irgendwie sinnlos und teuer immer über den Stack zu gehen.

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  15. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: bstea 04.03.14 - 14:53

    Genauso sauber wie gotos ;)

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  16. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: acuntex 04.03.14 - 14:54

    bstea schrieb:
    --------------------------------------------------------------------------------
    > Wäre auch irgendwie sinnlos und teuer immer über den Stack zu gehen.

    Ja, das ganze ist ja sooo teuer, am besten den ganzen Code in die main() rein. Wie ich diese Urban Legends liebe.

  17. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: acuntex 04.03.14 - 14:55

    bstea schrieb:
    --------------------------------------------------------------------------------
    > Genauso sauber wie gotos ;)


    Nein, lieber mehrere returns als gotos ;)

  18. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: rommudoh 04.03.14 - 14:56

    M.P. schrieb:
    --------------------------------------------------------------------------------
    > Die neue Schule ist ein try / catch mit einem throw ... an der Stelle, wo
    > jetzt das goto steht ;-)
    >
    > Das ist dann wieder die "reine Informatiker-Schule"


    Ähm, falsche Sprache!

  19. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: bstea 04.03.14 - 15:08

    Zusätzliches PUSH und POP ist bei dir nicht teuer? Du musst ein Genie sein.

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  20. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: acuntex 04.03.14 - 15:18

    bstea schrieb:
    --------------------------------------------------------------------------------
    > Zusätzliches PUSH und POP ist bei dir nicht teuer? Du musst ein Genie sein.

    Don't get me wrong...
    Ich erinner mich sehr wohl an die Assembler-Vorlesungen und die Warnungen wie teuer doch Funktionsaufrufe seien.

    In der Realität ist dies jedoch irrelevant.
    Bloß weil ich an einer stelle im ns-Bereich sparen wollte, kriege ich es evtl. zurück durch Bugs, schlechtere Wartbarkeit durch die Verletzung der Grundprinzipien der Software-Entwicklung etc.

  1. Thema
  1. 1
  2. 2
  3. 3

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. operational services GmbH & Co. KG, Dresden, Berlin, Frankfurt am Main, München
  2. medavis GmbH, Karlsruhe
  3. Knauf Gips KG, Iphofen bei Würzburg
  4. Max Planck Institute for Human Development, Berlin

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. (reduzierte Überstände, Restposten & Co.)


Haben wir etwas übersehen?

E-Mail an news@golem.de


Elektroautos in Tiefgaragen: Was tun, wenn's brennt?
Elektroautos in Tiefgaragen
Was tun, wenn's brennt?

Was kann passieren, wenn Elektroautos in einer Tiefgarage brennen? Während Brandschutzexperten dringend mehr Forschung fordern und ein Parkverbot nicht ausschließen, wollen die Bundesländer die Garagenverordnung verschärfen.
Eine Analyse von Friedhelm Greis

  1. Autohersteller Maserati will Elektroautos mit besonderem Sound ausstatten
  2. Elektroauto-Prämie Regierung liefert Brüssel erste Daten zu neuem Umweltbonus
  3. Zulieferprobleme Audi will E-Tron-Produktion in Brüssel kürzen

Sicherheitslücken: Microsoft-Parkhäuser ungeschützt im Internet
Sicherheitslücken
Microsoft-Parkhäuser ungeschützt im Internet

Eigentlich sollte die Parkhaussteuerung nicht aus dem Internet erreichbar sein. Doch auf die Parkhäuser am Microsoft-Hauptsitz in Redmond konnten wir problemlos zugreifen. Nicht das einzige Sicherheitsproblem auf dem Parkhaus-Server.
Von Moritz Tremmel

  1. Ölindustrie Der große Haken an Microsofts Klimaplänen
  2. Datenleck Microsoft-Datenbank mit 250 Millionen Support-Fällen im Netz
  3. Office 365 Microsoft testet Werbebanner in Wordpad für Windows 10

Support-Ende von Windows 7: Für wen Linux eine Alternative zu Windows 10 ist
Support-Ende von Windows 7
Für wen Linux eine Alternative zu Windows 10 ist

Windows 7 erreicht sein Lebensende (End of Life) und wird von Microsoft künftig nicht mehr mit Updates versorgt. Lohnt sich ein Umstieg auf Linux statt auf Windows 10? Wir finden: in den meisten Fällen schon.
Von Martin Loschwitz

  1. Lutris EA verbannt offenbar Linux-Gamer aus Battlefield 5
  2. Linux-Rechner System 76 will eigene Laptops bauen
  3. Grafiktreiber Nvidia will weiter einheitliches Speicher-API für Linux

  1. Bundesverwaltungsgericht: Linksunten bleibt verboten
    Bundesverwaltungsgericht
    Linksunten bleibt verboten

    Die linke Medienplattform linksunten.indymedia.org bleibt verboten. Das Bundesverwaltungsgericht hat eine entsprechende Klage gegen das Verbot als unbegründet abgewiesen.

  2. China: Huawei weist Bericht zu Geheimdienstzusammenarbeit zurück
    China
    Huawei weist Bericht zu Geheimdienstzusammenarbeit zurück

    Seit Dezember soll es ein geheimes Papier des Auswärtigen Amts geben, das mit US-Quellen eine Zusammenarbeit Huaweis mit dem chinesischen Staatsapparat belegt. Doch das passt nicht zu den Aussagen britischer Geheimdienste und der Bundesregierung.

  3. Zehntes Jubiläum: Auch Microsoft hat das erste iPad überrascht
    Zehntes Jubiläum
    Auch Microsoft hat das erste iPad überrascht

    In einem ausführlichen Bericht blickt der ehemalige Windows-Chef Steven Sinofsky auf das erste iPad zurück. Die Medien und die Branche selbst ahnten vor zehn Jahren nicht, was für ein Produkt es letztlich sein sollte und dass es überhaupt nicht den damaligen Vorstellungen entsprach.


  1. 20:51

  2. 18:07

  3. 17:52

  4. 17:07

  5. 14:59

  6. 14:41

  7. 14:22

  8. 14:01