FWIW, Coverity does a very good job on showing only real invalid pointer defects (or real defects of any type for that matter). If you have experience w/ the tool, I am surprised that you would still have that opinion.
I would ask why there is no check for c and f at first. ;-) Plain defensive programming.
You know that sometimes when you look at your code over and over again you simply miss certain points. Especially after long nights, much coffee and pizza.