Hi, The following in memory.c [1] looks like an unfortunate typo:
if (p_memory != NULL) return;The result is that cdio_free() currently leaks every block of memory it should deallocate... :(
On a side note, free() is supposed to accept NULL as a pointer ([2] "If ptr is NULL, no operation is performed."), so the check for NULL could probably be avoided.
Regards, /Pete[1] http://git.savannah.gnu.org/gitweb/?p=libcdio.git;a=blob;f=lib/driver/memory.c#l39
[2] http://linux.die.net/man/3/free
