--- a/src/shutdown.c 2014-08-27 11:12:27.190818873 +0530 +++ b/src/shutdown.c 2014-08-27 17:26:17.255795050 +0530 @@ -283,39 +283,71 @@ _IceTransClose (iceConn->trans_conn); if (iceConn->connection_string) + { free (iceConn->connection_string); + iceConn->connection_string = NULL; + } if (iceConn->vendor) + { free (iceConn->vendor); + iceConn->vendor = NULL; + } if (iceConn->release) + { free (iceConn->release); - + iceConn->release = NULL; + } if (iceConn->inbuf) + { free (iceConn->inbuf); + iceConn->inbuf = NULL; + } if (iceConn->outbuf) + { free (iceConn->outbuf); + iceConn->outbuf = NULL; + } if (iceConn->scratch) + { free (iceConn->scratch); + iceConn->scratch = NULL; + } + if (iceConn->process_msg_info) + { free (iceConn->process_msg_info); + iceConn->process_msg_info = NULL; + } if (iceConn->connect_to_you) + { free (iceConn->connect_to_you); + iceConn->connect_to_you = NULL; + } if (iceConn->protosetup_to_you) + { free (iceConn->protosetup_to_you); - + iceConn->protosetup_to_you = NULL; + } if (iceConn->connect_to_me) + { free (iceConn->connect_to_me); - + iceConn->connect_to_me = NULL; + } if (iceConn->protosetup_to_me) + { free (iceConn->protosetup_to_me); + iceConn->protosetup_to_me = NULL; + } free (iceConn); + iceConn = NULL; }