<<Basically, I'm free()-ing an address which is different from the one I malloc()-ed. >> which you can't do, so the answer is almost anything might happen! It is not a memory leak, it is a bug.