Mercurial > pidgin.yaz
comparison libpurple/protocols/msn/httpconn.c @ 25844:5e6999b6b5e4
Prevent a NUL ptr deref caused by a malformed session_id.
This came out of the veracode analysis.
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Sat, 02 May 2009 19:39:45 +0000 |
parents | d72c185d0be3 |
children | 35b6fd563056 |
comparison
equal
deleted
inserted
replaced
25843:d8ce4de7137f | 25844:5e6999b6b5e4 |
---|---|
217 g_strfreev(elems); | 217 g_strfreev(elems); |
218 | 218 |
219 g_free(tmp); | 219 g_free(tmp); |
220 | 220 |
221 t = strchr(full_session_id, '.'); | 221 t = strchr(full_session_id, '.'); |
222 session_id = g_strndup(full_session_id, t - full_session_id); | 222 if (t != NULL) |
223 session_id = g_strndup(full_session_id, t - full_session_id); | |
224 else { | |
225 purple_debug_error("msn", "Malformed full_session_id[%s]\n", | |
226 full_session_id ? full_session_id : NULL); | |
227 session_id = g_strdup(full_session_id); | |
228 } | |
223 | 229 |
224 if (session_action == NULL || strcmp(session_action, "close") != 0) | 230 if (session_action == NULL || strcmp(session_action, "close") != 0) |
225 { | 231 { |
226 g_free(httpconn->full_session_id); | 232 g_free(httpconn->full_session_id); |
227 httpconn->full_session_id = full_session_id; | 233 httpconn->full_session_id = full_session_id; |