X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilccore%2Fsilcpacket.c;h=2f491acb5f0997f2e5c30455be8a9eb638954eb9;hb=544d0faa279dc3a3ca8f635665bd2cb57e92342b;hp=f552ca6d1741aebf31648e1c694d34c302792ac3;hpb=5e7b2671da238a39001d1c4eb79f87ac56c2add2;p=silc.git diff --git a/lib/silccore/silcpacket.c b/lib/silccore/silcpacket.c index f552ca6d..2f491acb 100644 --- a/lib/silccore/silcpacket.c +++ b/lib/silccore/silcpacket.c @@ -1108,19 +1108,21 @@ void silc_packet_stream_unlink(SilcPacketStream stream, silc_mutex_lock(stream->lock); - silc_dlist_start(stream->process); - while ((p = silc_dlist_get(stream->process)) != SILC_LIST_END) - if (p->callbacks == callbacks && - p->callback_context == callback_context) { - silc_dlist_del(stream->process, p); - silc_free(p->types); - silc_free(p); - break; - } + if (stream->process) { + silc_dlist_start(stream->process); + while ((p = silc_dlist_get(stream->process)) != SILC_LIST_END) + if (p->callbacks == callbacks && + p->callback_context == callback_context) { + silc_dlist_del(stream->process, p); + silc_free(p->types); + silc_free(p); + break; + } - if (!silc_dlist_count(stream->process)) { - silc_dlist_uninit(stream->process); - stream->process = NULL; + if (!silc_dlist_count(stream->process)) { + silc_dlist_uninit(stream->process); + stream->process = NULL; + } } silc_mutex_unlock(stream->lock);