fix "if (p) free(p)" constructs

3 files changed