view doc/xfer-signals.dox @ 32796:5ae7e1f36b43

Fix a possible XMPP remote crash A series of specially crafted file transfer requests can cause clients to reference invalid memory. The user must have accepted one of the file transfer requests. The fix is to correctly cancel and free a SOCKS5 connection attempt so that it does not trigger an attempt to access invalid memory later. This was reported to us by Jos«± Valent«żn Guti«±rrez and this patch is written by Paul Aurich.
author Mark Doliner <mark@kingant.net>
date Mon, 07 May 2012 03:16:31 +0000
parents e0613cf8c493
children
line wrap: on
line source

/** @page xfer-signals File Transfer Signals

 @signals
  @signal file-recv-accept
  @signal file-recv-start
  @signal file-recv-cancel
  @signal file-recv-complete
  @signal file-recv-request
  @signal file-send-accept
  @signal file-send-start
  @signal file-send-cancel
  @signal file-send-complete
 @endsignals

 @see ft.h

 <hr>

 @signaldef file-recv-accept
  @signalproto
void (*file_recv_accept)(PurpleXfer *xfer, gpointer data);
  @endsignalproto
  @signaldesc
   Emitted when an incoming file transfer has been accepted.
  @param xfer The file transfer
  @param data User data
 @endsignaldef

 @signaldef file-recv-start
  @signalproto
void (*file_recv_start)(PurpleXfer *xfer, gpointer data);
  @endsignalproto
  @signaldesc
   Emitted when an incoming file transfer has been started.
  @param xfer The file transfer
  @param data User data
 @endsignaldef

 @signaldef file-recv-cancel
  @signalproto
void (*file_recv_cancel)(PurpleXfer *xfer, gpointer data);
  @endsignalproto
  @signaldesc
   Emitted when an incoming file transfer has been canceled.
  @param xfer The file transfer
  @param data User data
 @endsignaldef

 @signaldef file-recv-complete
  @signalproto
void (*file_recv_complete)(PurpleXfer *xfer, gpointer data);
  @endsignalproto
  @signaldesc
   Emitted when an incoming file transfer has been completed.
  @param xfer The file transfer
  @param data User data
 @endsignaldef

 @signaldef file-recv-request
  @signalproto
void (*file_recv_request)(PurpleXfer *xfer, gpointer data);
  @endsignalproto
  @signaldesc
   Emitted before the user is prompted for an incoming file-transfer.
   Plugins can intercept the signal to auto-accept/auto-reject the
   requests. To auto-accept the file transfer, use
   purple_xfer_request_accepted(). To auto-reject, set the status of the
   xfer to PURPLE_XFER_STATUS_CANCEL_LOCAL.
  @param xfer The file transfer
  @param data User data
 @endsignaldef

 @signaldef file-send-accept
  @signalproto
void (*file_send_accept)(PurpleXfer *xfer, gpointer data);
  @endsignalproto
  @signaldesc
   Emitted when an outgoing file transfer has been accepted.
  @param xfer The file transfer
  @param data User data
 @endsignaldef

 @signaldef file-send-start
  @signalproto
void (*file_send_start)(PurpleXfer *xfer, gpointer data);
  @endsignalproto
  @signaldesc
   Emitted when an outgoing file transfer has started.
  @param xfer The file transfer
  @param data User data
 @endsignaldef

 @signaldef file-send-cancel
  @signalproto
void (*file_send_cancel)(PurpleXfer *xfer, gpointer data);
  @endsignalproto
  @signaldesc
   Emitted when an outgoing file transfer has been canceled.
  @param xfer The file transfer
  @param data User data
 @endsignaldef

 @signaldef file-send-complete
  @signalproto
void (*file_send_complete)(PurpleXfer *xfer, gpointer data);
  @endsignalproto
  @signaldesc
   Emitted when an outgoing file transfer has been completed.
  @param xfer The file transfer
  @param data User data
 @endsignaldef

 */
// vim: syntax=c.doxygen tw=75 et