projects
/
silc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
72b896e
)
In packet stream destroy, free linked callbacks.
author
Pekka Riikonen
<priikone@silcnet.org>
Thu, 7 Dec 2006 17:00:23 +0000
(17:00 +0000)
committer
Pekka Riikonen
<priikone@silcnet.org>
Thu, 7 Dec 2006 17:00:23 +0000
(17:00 +0000)
lib/silccore/silcpacket.c
patch
|
blob
|
history
diff --git
a/lib/silccore/silcpacket.c
b/lib/silccore/silcpacket.c
index e2bf31258f997f8cfe85df825dba98a6e1d59c0e..adce3221a4cc5473a9fa2c30caeee1856772f653 100644
(file)
--- a/
lib/silccore/silcpacket.c
+++ b/
lib/silccore/silcpacket.c
@@
-760,10
+760,20
@@
void silc_packet_stream_destroy(SilcPacketStream stream)
silc_buffer_purge(&stream->inbuf);
silc_buffer_purge(&stream->outbuf);
silc_buffer_purge(&stream->inbuf);
silc_buffer_purge(&stream->outbuf);
+ if (stream->process) {
+ SilcPacketProcess p;
+ silc_dlist_start(stream->process);
+ while ((p = silc_dlist_get(stream->process))) {
+ silc_free(p->types);
+ silc_free(p);
+ silc_dlist_del(stream->process, p);
+ }
+ silc_dlist_uninit(stream->process);
+ }
+
/* XXX */
silc_atomic_uninit8(&stream->refcnt);
/* XXX */
silc_atomic_uninit8(&stream->refcnt);
- silc_dlist_uninit(stream->process);
silc_mutex_free(stream->lock);
silc_free(stream);
}
silc_mutex_free(stream->lock);
silc_free(stream);
}
@@
-896,6
+906,7
@@
void silc_packet_stream_unlink(SilcPacketStream stream,
if (p->callbacks == callbacks &&
p->callback_context == callback_context) {
silc_dlist_del(stream->process, p);
if (p->callbacks == callbacks &&
p->callback_context == callback_context) {
silc_dlist_del(stream->process, p);
+ silc_free(p->types);
silc_free(p);
break;
}
silc_free(p);
break;
}