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

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

Neue Foren im Freiraum! Raumfahrt und freie Software haben jetzt einen Platz, die Games tummeln sich jetzt alle in einem Forum.
  1. Thema
  1. 1
  2. 2
  3. 3

Neues Thema


  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


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. IT-Administration / Systemadministration für Einrichtung / Betrieb / kontinuierliche Wartung ... (m/w/d)
    reflact AG, Oberhausen
  2. Fachinformatiker*in (m/w/d) für den Benutzerservice
    Landesamt für Finanzen - Zentralabteilung, Weiden
  3. IT-Security Manager (w/m/d)
    Dataport, verschiedene Standorte
  4. (Senior) Scrum Master (m/w/d) IT-Projekte
    AUSY Technologies Germany AG, Frankfurt, München, Nürnberg, Hamburg, Düsseldorf

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. (u. a. Civilization 6 - Platinum Edition für 13,99€, XCOM 2 - Ultimate Collection für 12,99€)
  2. 26,90€
  3. 19,99€
  4. 5,49€


Haben wir etwas übersehen?

E-Mail an news@golem.de


Kubernetes-Kontrollcenter: Mit YTT-Templates Kubernetes-Cluster besser verwalten
Kubernetes-Kontrollcenter
Mit YTT-Templates Kubernetes-Cluster besser verwalten

Wir zeigen, wie man mit zentraler und automatisierter YAML-Generierung Hunderte Microservices spielend verwalten kann.
Eine Anleitung von Jochen R. Meyer

  1. Container Kubernetes 1.24 entfernt endgültig Docker-Support

Nordvpn, Expressvpn, Mullvad & Co: Die Qual der VPN-Wahl
Nordvpn, Expressvpn, Mullvad & Co
Die Qual der VPN-Wahl

Wer sicher im Internet unterwegs sein will, braucht ein VPN - oder doch nicht? Viele Anbieter kommen jedenfalls gar nicht erst in Frage.
Von Moritz Tremmel

  1. Windows 10 und Windows 11 Microsoft behebt Bug mit VPNs unter Windows
  2. Überwachung Polizei beschlagnahmt VPN-Dienst
  3. Urheberrecht VPN-Anbieter blockiert Torrents und Pirate Bay nach Klage

US-Militär: Kernkraft im Weltall von Vernunft bis möglichem Betrug
US-Militär
Kernkraft im Weltall von Vernunft bis möglichem Betrug

Zwei Techniken sollen 2027 mit Satelliten fliegen, ein Fusionsreaktor und eine Radioisotopenbatterie. Nur eine davon ist glaubwürdig.
Von Frank Wunderlich-Pfeiffer

  1. Raumfahrt Raketenabgase können die Atmosphäre schädigen
  2. Raumfahrt Raketenstufe mit Helikopter gefangen und wieder verloren
  3. Raumfahrt Rocketlab will eine Rakete per Helikopter auffangen