comparison libpurple/protocols/msnp9/slp.c @ 27941:db99cde1845c

Fix crashes when filenames end up being NULL in some prpls. Fixed a minor leak in MSNP9 while we're at it. committer: John Bailey <rekkanoryo@rekkanoryo.org>
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sun, 16 Aug 2009 23:46:15 +0000
parents 7f552614ec8a
children
comparison
equal deleted inserted replaced
27940:cd257777ac5d 27941:db99cde1845c
336 PurpleAccount *account; 336 PurpleAccount *account;
337 PurpleXfer *xfer; 337 PurpleXfer *xfer;
338 char *bin; 338 char *bin;
339 gsize bin_len; 339 gsize bin_len;
340 guint32 file_size; 340 guint32 file_size;
341 char *file_name; 341 gchar *file_name;
342 gunichar2 *uni_name; 342 gunichar2 *uni_name;
343 343
344 account = slpcall->slplink->session->account; 344 account = slpcall->slplink->session->account;
345 345
346 slpcall->cb = msn_xfer_completed_cb; 346 slpcall->cb = msn_xfer_completed_cb;
366 file_name = g_utf16_to_utf8((const gunichar2 *)(bin + 20), -1, 366 file_name = g_utf16_to_utf8((const gunichar2 *)(bin + 20), -1,
367 NULL, NULL, NULL); 367 NULL, NULL, NULL);
368 368
369 g_free(bin); 369 g_free(bin);
370 370
371 purple_xfer_set_filename(xfer, file_name); 371 purple_xfer_set_filename(xfer, file_name ? file_name : "");
372 g_free(file_name);
372 purple_xfer_set_size(xfer, file_size); 373 purple_xfer_set_size(xfer, file_size);
373 purple_xfer_set_init_fnc(xfer, msn_xfer_init); 374 purple_xfer_set_init_fnc(xfer, msn_xfer_init);
374 purple_xfer_set_request_denied_fnc(xfer, msn_xfer_cancel); 375 purple_xfer_set_request_denied_fnc(xfer, msn_xfer_cancel);
375 purple_xfer_set_cancel_recv_fnc(xfer, msn_xfer_cancel); 376 purple_xfer_set_cancel_recv_fnc(xfer, msn_xfer_cancel);
376 377