*Should* not crash ??? That's funny...

void sftp_free(SFTP_SESSION *sftp){
      struct request_queue *ptr;
      channel_send_eof(sftp->channel); // *MEEEEEEEEEEEEEEK*
      channel_free(sftp->channel);
      ptr=sftp->queue;
      while(ptr){
          struct request_queue *old;
          sftp_message_free(ptr->message);
          old=ptr->next;
          free(ptr);
          ptr=old;
    }
      memset(sftp,0,sizeof(*sftp));
      free(sftp);
}