...
Compass/ROSE can detect violations of the rule.
The Coverity Prevent Version 5.0 USE_AFTER_FREE checker can detect the specific instances where Memory is deallocated more than once or Read/Write to target of a freed pointer.
Klocwork Version 8.0.4.16 can detect violations of this rule with the UFM.DEREF.MIGHT, UFM.DEREF.MUST, UFM.FFM.MIGHT, UFM.FFM.MUST, UFM.PARAMPASS.MIGHT, UFM.PARAMPASS.MUST, UFM.RETURN.MIGHT, UFM.RETURN.MUST, UFM.USE.MIGHT, and UFM.USE.MUST checkers.
...