...
Compass/ROSE can detect some violations of this rule. In particular, false positives may be raised if a variable is freed by a different function than the one that allocated it. Also, false negatives may be raised in it is unable to warn on cases where a call to free()
happens inside of a for-loop.
...