...
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 can detect violations of this rule with the UFM.DEREF.MIGHT, UFM.DEREF.MUST, UFM.RETURN.MIGHT, UFM.RETURN.MUST, UFM.USE.MIGHT, and UFM.USE.MUST checkers. See Klocwork Cross Reference
...