Denial of denial of service

[prev] [thread] [next] [lurker] [Date index for 2007/01/26]

From: Yossi Kreinin
Subject: Denial of denial of service
Date: 16:03 on 26 Jan 2007
Some programs crash when they crash. Can't their authors handle errors?

By "errors", I mean things like *(int*)0xACDC = 0xABBA;
By "handle", I mean things like signal(SIGSEGV, SIG_IGN);

And you don't even need to work hard to make your program deny the crash - just 
develop your programs on Microsoft Windows (tm) using Microsoft Visual C++ (tm)! 
Look how easy it is:

1. "Structured exception handling" (the __try/__except kludge) traps access 
violations, leaving your program alive.
2. C++ exception handling (the catch-everything try/catch(...) kludge) also does 
that.
3. I'm not sure if it's MFC or, worse, the underlying API such as GetMessage, 
but when you handle messages, access violations may also get trapped.

So the program won't crash when it crashes. Instead, the zombie program will 
keep running from hell knows what point with hell knows what data overwritten by 
hell knows what garbage with hell knows what consequences. This is obviously the 
better behavior considering the breakdown of the user population:

1. Users who bought the program - those would be upset to see the program crash.
2. Users who stole the program - those deserve to suffer.
3. Users of Free Software - "... or FITNESS FOR A PARTICULAR PURPOSE."

Of course this is also very convenient for developement time.

Generated at 23:01 on 06 Feb 2007 by mariachi 0.52