CVS commit by antlarr: Applied patch by Dirk Jagdmann. Thank you very much for your patch Dirk, I'm very sorry for taking so long to answer your bug report. Thanks to you and Ken Zalewski for reporting it and sending mails until I commited it instead of just forgetting about it. Really. I apologize for taking so long. CCMAIL:77448-done@bugs.kde.org M +9 -6 alsaout.cc 1.27 [POSSIBLY UNSAFE: printf] --- kdelibs/libkmid/alsaout.cc #1.26:1.27 @@ -189,6 +189,11 @@ void AlsaOut::closeDev (void) snd_seq_delete_simple_port(di->handle,di->src->port); delete di->src; + di->src=0; + } + if (di->tgt) + { + delete di->tgt; + di->tgt=0; } - if (di->tgt) delete di->tgt; if (di->queue) { @@ -231,7 +236,7 @@ void AlsaOut::eventInit(snd_seq_event_t tmp.tv_nsec=(time%1000)*1000000; // printf("time : %d %d %d\n",(int)time,(int)tmp.tv_sec, (int)tmp.tv_nsec); - if (!di->src) fprintf(stderr,"AlsaOut::eventInit : no source\n"); + if (!di->src) { fprintf(stderr,"AlsaOut::eventInit : no source\n"); return; } ev->source = *di->src; - if (!di->tgt) fprintf(stderr,"AlsaOut::eventInit : no target\n"); + if (!di->tgt) { fprintf(stderr,"AlsaOut::eventInit : no target\n"); return; } ev->dest = *di->tgt; @@ -505,5 +508,5 @@ void AlsaOut::sync(int i) } - if (di->timerStarted) + if (di->timerStarted && di->src) { eventInit(di->ev);