{"id":194,"date":"2007-07-24T09:02:58","date_gmt":"2007-07-24T07:02:58","guid":{"rendered":"http:\/\/www.mitternachtshacking.de\/blog\/194-noch-mehr-gegen-c"},"modified":"2025-04-05T23:23:57","modified_gmt":"2025-04-05T21:23:57","slug":"noch-mehr-gegen-c","status":"publish","type":"post","link":"https:\/\/www.mitternachtshacking.de\/blog\/194-noch-mehr-gegen-c","title":{"rendered":"Noch mehr gegen C++"},"content":{"rendered":"<p>Bei <a href=\"http:\/\/www.matasano.com\/log\/914\/c-a-cautionary-tale-or-1-hour-of-your-black-hat-trip-is-spoken-for\/\">Matasano<\/a> gibt es eine kleine Liste von Fehlerklassen in C++:<\/p>\n<p>Exceptions: When you throw an exception, you effectively &#8222;abort&#8220; your current function, and all the functions in the call chain up to the point where the exception was caught. If any of these functions aren&#8217;t written to anticipate getting preemptively aborted, and hold on to a pointer or a chunk of memory, you&#8217;ve got a memory lifecycle bug.<\/p>\n<p>Destructors: If you call &#8222;delete[]&#8220; instead of &#8222;delete&#8220; you&#8217;ve introduced a potential vulnerability.<\/p>\n<p>STL: The Standard C++ Library. If you modify an STL vector or dequeue, you invalidate all your outstanding iterators. If you hold references to those invalid iterators, they now point to invalid addresses.<\/p>\n<p>Mehr auch <a href=\"http:\/\/taossa.com\/index.php\/2007\/07\/09\/blackhat-usa-2007\/\">hier<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bei Matasano gibt es eine kleine Liste von Fehlerklassen in C++: Exceptions: When you throw an exception, you effectively &#8222;abort&#8220; your current function, and all the functions in the call chain up to the point where the exception was caught. If any of these functions aren&#8217;t written to anticipate getting preemptively aborted, and hold on [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts\/194"}],"collection":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/comments?post=194"}],"version-history":[{"count":0,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts\/194\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/media?parent=194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/categories?post=194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/tags?post=194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}