It does cover the case I said above (buffer allocated through `new`, data allocated through `realloc`, buffer can't be freed with this code).

> Yeah, if you add the NULL check on the data_free, I will be ok with it.

Okay then. Adding and squashing both.