fix irc_chan to copy the irc_chan_info strings
authorTero Marttila <terom@fixme.fi>
Thu, 23 Apr 2009 17:17:56 +0300
changeset 148 2d8dec363f9e
parent 147 fd97eb3c183a
child 149 549913bbe0d2
fix irc_chan to copy the irc_chan_info strings
src/irc_chan.c
src/irc_chan.h
--- a/src/irc_chan.c	Thu Apr 23 17:17:33 2009 +0300
+++ b/src/irc_chan.c	Thu Apr 23 17:17:56 2009 +0300
@@ -289,7 +289,10 @@
 
     // store
     chan->net = net;
-    chan->info = *info;
+    
+    // copy info
+    if ((chan->info.channel = strdup(info->channel)) == NULL)
+        JUMP_SET_ERROR(err, ERR_STRDUP);
 
     // init
     LIST_INIT(&chan->users);
@@ -321,13 +324,10 @@
         irc_chan_remove_user(chan, chan_user);
     }
 
-    // free command handlers
+    // free chan itself
     irc_cmd_free(&chan->handlers);
-
-    // free callbacks
     chain_free(&chan->callbacks);
-
-    // free chan itself
+    free((char *) chan->info.channel);
     free(chan);
 }
 
--- a/src/irc_chan.h	Thu Apr 23 17:17:33 2009 +0300
+++ b/src/irc_chan.h	Thu Apr 23 17:17:56 2009 +0300
@@ -132,6 +132,8 @@
  *
  * The channel will be in the IRC_CHAN_INIT state after this.
  *
+ * The contents of \a info will be copied.
+ *
  * @param chan_ptr the new irc_chan is returned via this pointer
  * @param net the irc_net this channel is on
  * @param info the channel's identifying information