Mercurial > pidgin
comparison libgaim/protocols/qq/recv_core.c @ 14656:d1a76ccb93c4
[gaim-migrate @ 17402]
leak-be-gone
committer: Tailor Script <tailor@pidgin.im>
author | Mark Huetsch <markhuetsch> |
---|---|
date | Sat, 30 Sep 2006 00:14:00 +0000 |
parents | 6b8bc59414f0 |
children | c039c920e11c |
comparison
equal
deleted
inserted
replaced
14655:4764c501fdb9 | 14656:d1a76ccb93c4 |
---|---|
88 data = g_newa(guint8, len); | 88 data = g_newa(guint8, len); |
89 msg_utf8 = NULL; | 89 msg_utf8 = NULL; |
90 | 90 |
91 _qq_show_packet("Processing unknown packet", buf, len); | 91 _qq_show_packet("Processing unknown packet", buf, len); |
92 if (qq_crypt(DECRYPT, buf, buf_len, qd->session_key, data, &len)) { | 92 if (qq_crypt(DECRYPT, buf, buf_len, qd->session_key, data, &len)) { |
93 gchar *hex_dump = hex_dump_to_str(data, len); | |
93 gaim_debug(GAIM_DEBUG_WARNING, "QQ", | 94 gaim_debug(GAIM_DEBUG_WARNING, "QQ", |
94 ">>> [%d] %s, %d bytes -> [default] decrypt and dump\n%s", | 95 ">>> [%d] %s, %d bytes -> [default] decrypt and dump\n%s", |
95 seq, qq_get_cmd_desc(cmd), buf_len, hex_dump_to_str(data, len)); | 96 seq, qq_get_cmd_desc(cmd), buf_len, hex_dump); |
97 g_free(hex_dump); | |
96 try_dump_as_gbk(data, len); | 98 try_dump_as_gbk(data, len); |
97 } else { | 99 } else { |
98 gaim_debug(GAIM_DEBUG_ERROR, "QQ", "Fail decrypt packet with default process\n"); | 100 gaim_debug(GAIM_DEBUG_ERROR, "QQ", "Fail decrypt packet with default process\n"); |
99 } | 101 } |
100 } | 102 } |
113 | 115 |
114 qd = (qq_data *) gc->proto_data; | 116 qd = (qq_data *) gc->proto_data; |
115 bytes_expected = qd->use_tcp ? QQ_TCP_HEADER_LENGTH : QQ_UDP_HEADER_LENGTH; | 117 bytes_expected = qd->use_tcp ? QQ_TCP_HEADER_LENGTH : QQ_UDP_HEADER_LENGTH; |
116 | 118 |
117 if (buf_len < bytes_expected) { | 119 if (buf_len < bytes_expected) { |
120 gchar *hex_dump = hex_dump_to_str(buf, buf_len); | |
118 gaim_debug(GAIM_DEBUG_ERROR, | 121 gaim_debug(GAIM_DEBUG_ERROR, |
119 "QQ", "Received packet is too short, dump and drop\n%s", hex_dump_to_str(buf, buf_len)); | 122 "QQ", "Received packet is too short, dump and drop\n%s", hex_dump); |
123 g_free(hex_dump); | |
120 return; | 124 return; |
121 } | 125 } |
122 /* initialize */ | 126 /* initialize */ |
123 cursor = buf; | 127 cursor = buf; |
124 bytes_read = 0; | 128 bytes_read = 0; |
147 bytes_expected, bytes_read); | 151 bytes_expected, bytes_read); |
148 return; | 152 return; |
149 } | 153 } |
150 | 154 |
151 if ((buf[buf_len - 1] != QQ_PACKET_TAIL) || (header.header_tag != QQ_PACKET_TAG)) { | 155 if ((buf[buf_len - 1] != QQ_PACKET_TAIL) || (header.header_tag != QQ_PACKET_TAG)) { |
156 gchar *hex_dump = hex_dump_to_str(buf, buf_len); | |
152 gaim_debug(GAIM_DEBUG_ERROR, | 157 gaim_debug(GAIM_DEBUG_ERROR, |
153 "QQ", "Unknown QQ proctocol, dump and drop\n%s", hex_dump_to_str(buf, buf_len)); | 158 "QQ", "Unknown QQ proctocol, dump and drop\n%s", hex_dump); |
159 g_free(hex_dump); | |
154 return; | 160 return; |
155 } | 161 } |
156 | 162 |
157 if (QQ_DEBUG) | 163 if (QQ_DEBUG) |
158 gaim_debug(GAIM_DEBUG_INFO, "QQ", | 164 gaim_debug(GAIM_DEBUG_INFO, "QQ", |