core dump in ao_close
ao_close does a NULL pointer dereference if you only ao_initialize(), get_default_device(), append_device(), and then ao_close (like ogg123 does), but play no file in the mean time (which can happen if you specify an invalid ogg file for play, e.g. a directory). Simple test: `mkdir test && ogg123 test'. I traced it a bit, and found out that it dies in ao_close().