diff options
Diffstat (limited to 'protocols/yahoo/libyahoo2.c')
-rw-r--r-- | protocols/yahoo/libyahoo2.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/protocols/yahoo/libyahoo2.c b/protocols/yahoo/libyahoo2.c index bd111654..9e0d705b 100644 --- a/protocols/yahoo/libyahoo2.c +++ b/protocols/yahoo/libyahoo2.c @@ -4829,6 +4829,9 @@ static void yahoo_add_active_transfer(struct send_file_data *sfd) static void yahoo_remove_active_transfer(struct send_file_data *sfd) { + if (sfd == NULL) + return; + active_file_transfers = y_list_remove(active_file_transfers, sfd); free(sfd->id); free(sfd->who); @@ -4989,7 +4992,7 @@ static void yahoo_process_filetransferaccept(struct yahoo_input_data *yid, else { YAHOO_CALLBACK(ext_yahoo_file_transfer_done) (yid->yd->client_id, YAHOO_FILE_TRANSFER_UNKNOWN, - sfd->data); + sfd ? sfd->data : NULL); yahoo_remove_active_transfer(sfd); } @@ -5045,7 +5048,7 @@ static void yahoo_process_filetransferinfo(struct yahoo_input_data *yid, else { YAHOO_CALLBACK(ext_yahoo_file_transfer_done) (yid->yd->client_id, YAHOO_FILE_TRANSFER_UNKNOWN, - sfd->data); + sfd ? sfd->data : NULL); yahoo_remove_active_transfer(sfd); } @@ -5160,7 +5163,7 @@ static void yahoo_process_filetransfer(struct yahoo_input_data *yid, else if (!sfd || action == YAHOO_FILE_TRANSFER_REJECT) { YAHOO_CALLBACK(ext_yahoo_file_transfer_done) (yd->client_id, YAHOO_FILE_TRANSFER_REJECT, - sfd->data); + sfd ? sfd->data : NULL); yahoo_remove_active_transfer(sfd); } |