>>438さんどうもです。書いてくださったコードとほとんど同じだったのですが、
なるほど、呼び出し側のpをfreeするとbufもfreeされるということですね。何で気づかなっかたんだろ。
ひとつ勉強させていただきました。ありがとうございます。