Hello, In cdio's read_track() the error condition around sio_write() doesn't free local storage "sec" before it returns. The other error cases appear to free it.
- Michael Index: rip.c =================================================================== RCS file: /cvs/src/usr.bin/cdio/rip.c,v retrieving revision 1.16 diff -u -p -u -r1.16 rip.c --- rip.c 20 Aug 2015 22:32:41 -0000 1.16 +++ rip.c 19 Jun 2017 03:27:14 -0000 @@ -398,6 +398,7 @@ read_track(struct track *ti) } if (ti->hdl != NULL && (sio_write(ti->hdl, sec, blksize) == 0)) { + free(sec); sio_close(ti->hdl); ti->hdl = NULL; warnx("\nerror while writing to audio output");