Why does FogBugz require DEP to be disabled?
FogBugz 6 (and earlier) requires Data Execution Prevention (DEP) to be disabled on Windows versions with DEP, due to the third party COM component we use to parse email. We will fix this in the next major release of FogBugz: FogBugz will no longer use this third party component (in fact, the next version of FogBugz will not use any COM components).
source to share
I don't know the specifics of FogBugz, but ...
The most common reason for disabling DEP is an incorrectly linked code segment, which is represented by a data segment.
The second most common reason is machine code in strings. All in all, this is really bad style, but sometimes on Windows it can't help.
The third most common reason is some kind of algorithm in the code that suggests stacking. DEP with this.
Or perhaps the program actually runs the code in the heap buffer.
source to share
Code that tries to fix or insert a hook into other modules in its address space will often fail unless DEP is disabled or the appropriate memory protection is installed for the established connection.
This is a common technique with some frameworks (eg Delphi) where "patches" are applied dynamically ar run-time to fix bugs that the vendor has not yet indicated.
source to share
I just don't like the idea of โโdisabling DEP in a Server environment, because modern software can't handle it. Specially since this is the only software I've tried over the years that required it.
During installation, I ran into a DEP warning.
As stated in the FogBugz link above, "Be warned, however, that FogBugz will not function properly with DEP enabled."