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;