{"id":25223,"date":"2007-09-07T10:00:00","date_gmt":"2007-09-07T10:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2007\/09\/07\/sometimes-it-feels-like-the-effort-isnt-even-appreciated\/"},"modified":"2007-09-07T10:00:00","modified_gmt":"2007-09-07T10:00:00","slug":"sometimes-it-feels-like-the-effort-isnt-even-appreciated","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20070907-00\/?p=25223","title":{"rendered":"Sometimes it feels like the effort isn&#039;t even appreciated"},"content":{"rendered":"<p>Some time ago, the application compatibility folks found a program that was corrupting the heap, and they applied a fix that worked around the specific type of corruption that the program performed.\n And then a bug came on that same program. It was a heap corruption failure during the program&#8217;s processing of global destructors.\n The authors of that program were so clever, they found a way around the compatibility fix and managed to corrupt the heap anyway!<\/p>\n<p> <b>Update<\/b>: To clarify, there was no updated version of the program. (That&#8217;s why I wrote &#8220;that same program&#8221; and not &#8220;an updated version of that program&#8221;.) There was a bug in <i>XYZ Version 2.1<\/i>. We added a compatibility fix for it. And then later, another bug came in, also for <i>XYZ Version 2.1<\/i> showing that the compatibility fix wasn&#8217;t good enough. We tried to fix their heap corruption, but they were too clever and corrupted it in another way in a different part of the program. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Some time ago, the application compatibility folks found a program that was corrupting the heap, and they applied a fix that worked around the specific type of corruption that the program performed. And then a bug came on that same program. It was a heap corruption failure during the program&#8217;s processing of global destructors. The [&hellip;]<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[26],"class_list":["post-25223","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-other"],"acf":[],"blog_post_summary":"<p>Some time ago, the application compatibility folks found a program that was corrupting the heap, and they applied a fix that worked around the specific type of corruption that the program performed. And then a bug came on that same program. It was a heap corruption failure during the program&#8217;s processing of global destructors. The [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/25223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=25223"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/25223\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=25223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=25223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=25223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}