commit 711fe01f210030b40ce0aeceb1c18526632ba5b8
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Oct 25 16:58:50 2008 +0300

    Fixed channel MAC key setting in JOIN notify and command reply
    
    In JOIN notify when MAC algo changes wrong key was set to the new MAC.
    
    In JOIN command reply in backup router the channel key may not be set
    in command reply because backup reiceives also CHANNEL_KEY packet from
    router and hence clients receive it too, but new MAC context was still
    allocated in the command reply, hence using empty MAC without key with
    channel messages.

commit 457becb724b71a6145d8c1ad2111b972ed67128d
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Sep 13 15:45:53 2008 +0300

    SKE: Verify initiator's public key always
    
    We used to verify initiator's public key only if we were doing mutual
    authentication.  We now verify it always because calling application
    may need the public key initiator sent.

commit 90e14dc985628e0b0f86e604d511039d302dc956
Author: Skywing <skywing@valhallalegends.com>
Date:   Fri Jun 27 18:13:59 2008 -0500

    Fix reference count bug leading to memory corruption on duplicate deletions.

commit 35135dcd998899182a78e7742b753c2bec72d923
Author: Skywing <skywing@valhallalegends.com>
Date:   Fri Jun 20 17:37:21 2008 -0500

    Make packet stream reference counts 32 bits.

commit 1cc9af890006b0181913d4f84909442744476745
Author: Kp <kp@valhallalegends.com>
Date:   Sun Jun 1 16:15:46 2008 -0500

    Packet streams: make packet handling callback pointers read only.
    
    The function pointers for the packet handling callbacks are never
    modified, so make them read only.

commit 3661cbc69ce24b5230c8602b24927eb841933b5e
Author: Kp <kp@valhallalegends.com>
Date:   Sun Jun 1 12:59:42 2008 -0500

    Packet streams: avoid double free if silc_id_id2str fails.
    
    In silc_packet_set_ids, the old ID is freed before silc_id_id2str is
    called.  If silc_id_id2str fails, then silc_packet_set_ids returns
    without resetting the ID pointer.  The pointer is then free, but not
    NULL.  When the packet stream is destroyed, silc_packet_stream_destroy
    will free the pointer again.  Reset the ID pointer to NULL immediately
    after freeing it to prevent this.

commit 7ebc6fcc9308c92130d59641b9f85341e609708b
Author: Kp <kp@valhallalegends.com>
Date:   Sun Jun 1 12:25:50 2008 -0500

    Packet streams: fix memory leak on dlist allocation failure.
    
    If silc_dlist_init fails to allocate a SilcDList for stream->process,
    then silc_packet_stream_link_va leaks the newly allocated
    SilcPacketProcess.  Fix that by calling silc_free(p) on the error path.

commit 8a03227a106d087077ab9f9e21f644c8b653af3f
Author: Kp <kp@valhallalegends.com>
Date:   Fri May 30 23:31:07 2008 -0500

    ASN1: Fix NULL pointer dereference on stack allocation failure.
    
    If the second silc_stack_alloc fails, then asn1->stack2 is NULL.  Thus,
    when silc_asn1_init calls silc_stack_free(asn1->stack2), it is
    equivalent to silc_stack_free(NULL).  However, silc_stack_free does not
    check for a NULL pointer.  Fix silc_asn1_init to free asn1->stack1, as
    was intended.

commit 7f51164d1ac93077d832de44a8dc71783fab8b33
Author: Kp <kp@valhallalegends.com>
Date:   Thu Apr 24 22:18:27 2008 -0500

    Avoid NULL dereference when leaving a channel with a private key.
    
    Split out a patch from Skywing <skywing@valhallalegends.com> to fix a
    NULL pointer dereference when the client leaves a +k channel and the
    local user had set a key for the channel.

commit ebfe5dc8641467efea3506a4797a2b1260b2da55
Author: Kp <kp@valhallalegends.com>
Date:   Sat May 31 16:37:45 2008 -0500

    ASN1: Fix stack variable overwrite when encoding OID.
    
    The call to sscanf specifies a format string of "%lu", a long unsigned
    int.  The pointer argument was cast to unsigned long *, but this is
    wrong for 64 bit systems.  On 64 bit systems, unsigned long is 64 bits,
    but the oid value is a SilcUInt32 on all systems.  As a result, sscanf
    will overwrite a neighboring variable on the stack.  Fix this by
    changing the format string to "%u" and removing the cast.

commit 41bac7b295aab8a09a1add8ca02db472fcd31184
Author: Kp <kp@valhallalegends.com>
Date:   Sat May 31 23:57:51 2008 -0500

    Types: make SilcUInt32 an unsigned int in most cases.
    
    On typical 32-bit systems, both unsigned int and unsigned long are 32
    bits wide.  However, they have different format specifiers, so they
    cannot be used interchangeably.  On typical 64-bit systems, unsigned int
    is 32 bits and unsigned long is 64 bits.  To allow for a more consistent
    format string, reorder the type size checks so that SilcUInt32 is an
    unsigned int on both 32 bit and 64 bit systems.

commit 9606632e594c94958116127a39e4411888c4a30b
Author: Kp <kp@valhallalegends.com>
Date:   Sat May 31 23:41:59 2008 -0500

    Type sanity: add compile time check that integers are of the expected size.
    
    The comments in silctypes.h guarantee that certain types are of
    particular sizes.  Add compile time checks that will fail if these
    guarantees are not met.

commit ad10dc073b3684e02f5fa14449463c1122bd4cb2
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sun Aug 31 10:58:11 2008 +0300

    Handle failed memory allocations in packet sending

commit 127c91c66005ddf9585458914e4caaf56758b490
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sun Aug 31 09:58:49 2008 +0300

    silc_stack_free can now be called with NULL stack

commit 103986117eb70b715d462b4d520a1f0912b8f90f
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Aug 30 15:08:03 2008 +0300

    Handle EAGAIN and EINTR correctly in silc_get_input in case of error

commit ca4ecaceb517b395f7ca7f74c9333a18e5d39f40
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Aug 30 14:15:49 2008 +0300

    Mark client entry invalid when killed and when notified non-existing

commit 136127fe86ff65414e1053c2f23b2126fb91b204
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Aug 30 14:14:45 2008 +0300

    Fixed command calling crash
    
    If command finishes synchronously the command context is not valid
    anymore and cannot be accessed.  Reported by Sami Farin.

commit 9263a12746fef57cf369e6830431e85d730c8701
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Aug 30 14:12:33 2008 +0300

    Changed packet_error structure const correctly

commit 68778effadb54cc42d8da50a30b97e12738415bd
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Aug 30 14:12:00 2008 +0300

    Fixed resuming to work even when there are no joined channels

commit 200cf7d05f4f9d46ce0ec08b906f988fd19747ee
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Aug 30 14:10:45 2008 +0300

    Fixed channel private key deleting to restore original keys correctly

commit 434015aa9a1ffc492116af219eba09e36188cbf9
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Aug 30 10:50:24 2008 +0300

    Resolve channel in INVITE notify if we don't have it yet
    
    Fixes bug that user cannot se INVITE notifications sent by other users.

commit 4d26d9f598384d7cd49c6238ea4a81b9f4e6f212
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sun Jun 22 17:42:40 2008 +0300

    Remove client from expired client list before deleting it

commit 32607f5db7ea3393765be5421e754ef191894dd5
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sun Jun 22 16:56:36 2008 +0300

    Fixed the silc_parse_userqfdn argument handling, again.

commit a21cfe2e02c268a20b8231b52017234fb3beea3f
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sun Jun 22 11:04:37 2008 +0300

    Fixed silc_parse_userfqdn argument check

commit a939f27e19b8084ef2acd25156b19d26d1440ace
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sun Jun 22 11:03:58 2008 +0300

    Make sure client entry is not expired more than once

commit ff6a990d9e7361a5d1eb9909483bcea7decef4d4
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Mon Jun 9 08:26:01 2008 +0300

    Close socket if TCP connecting fails to avoid leaking sockets

commit 9d4cd9d224dfd74d0d4059350cb511dc760d70f0
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Mon Jun 9 08:18:33 2008 +0300

    Add non-executing stack when compiling AES asm for GNU/ELF.
    
    Patch by Kp <kp@valhallalegends.com>bg
    
    Signed-off-by: Pekka Riikonen <priikone@silcnet.org>

commit 659451d6ae9212f6f5414a99646ffbe4f55689d0
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sun May 25 12:25:04 2008 +0300

    Handle memory allocation failures when unformatting data

commit 8aa96201d790de6a23905c5f0c87c950b582b8af
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sun May 25 12:24:41 2008 +0300

    Add non-executing stack when compiling AES asm for GNU/ELF.
    
    Patch by Kp <kp@valhallalegends.com>
    
    Signed-off-by: Pekka Riikonen <priikone@silcnet.org>

commit 90009aed5e2261b993679a9acfe035b0833ab873
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sun May 25 12:23:17 2008 +0300

    Fixed crash when packet stream creation fails.

commit 929798ea2747657e5834da459d4abb9bb41d71b0
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Apr 12 13:51:06 2008 +0300

    SILC_IS_FD_STREAM and SILC_IS_SOCKET_STREAM now checks for NULL stream.

commit 7f2e2c591c48f80822808759d12958769a323536
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Apr 12 13:50:39 2008 +0300

    Fixed silc_skr_init to not fail if threads support are not compiled in.

commit 01ad96cb7e509ac24c73220a2fa7c43fdd6cb70c
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sat Apr 12 13:50:09 2008 +0300

    Removed wrong SILC_LOG_ERROR and assert check from silc_idcache_add.
    
    In some cases it is not fatal error to attempt to add entry that already
    exists.  Removed the assert and changed the error to debug message.

commit 2dc72c63d6cc4e4f2addb99783554707a3488b6d
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Thu Apr 10 18:03:46 2008 +0300

    Mark scheduler task unscheduled after silc_schedule_unset_listen_fd.
    
    Affects epoll() version of schduler.  If it isn't marked unscheduled
    next time fd's events are changed they expect the fd to be in epoll()
    which they are not.  Setting unscheduled will add them again to epoll().

commit c724c52cf360b74e42a7f2c7450a25bd1fcb220d
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Thu Apr 10 18:01:35 2008 +0300

    Fixed QoS data limit handling in socket stream when reading data.

commit 8b11d3c1627f1dc3c7966bb51901bcdcf1f8a9fb
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Thu Apr 10 17:59:59 2008 +0300

    Fixed packet stream destroy crashes when closing connections.
    
    Take a reference of the packet stream and then destroy it.  The final
    reference is freed in the timeout callback.  Any operation in the mean
    time will detect the stream is destroyed and won't do anything.

 Makefile.ad                              |    2 +-
 lib/configure.ad                         |    2 +
 lib/silcapputil/silcidcache.c            |    3 +-
 lib/silcasn1/silcasn1.c                  |    2 +-
 lib/silcasn1/silcasn1_encode.c           |    4 +-
 lib/silcclient/client.c                  |   12 +-
 lib/silcclient/client.h                  |   14 +-
 lib/silcclient/client_channel.c          |   10 +-
 lib/silcclient/client_entry.c            |  229 ++++++++-------
 lib/silcclient/client_internal.h         |    2 +-
 lib/silcclient/client_notify.c           |   18 +-
 lib/silcclient/client_register.c         |   39 ++--
 lib/silcclient/command.c                 |    5 +-
 lib/silcclient/command_reply.c           |   26 +-
 lib/silccore/silcpacket.c                |   85 +++---
 lib/silccore/silcpacket.h                |    6 +-
 lib/silccrypt/aes_x86.asm                |    4 +
 lib/silccrypt/aes_x86_64.asm             |    4 +
 lib/silcske/silcske.c                    |   84 +++---
 lib/silcskr/silcskr.c                    |    3 +-
 lib/silcutil/silcbuffmt.c                |   25 +-
 lib/silcutil/silcfdstream.c              |    4 +-
 lib/silcutil/silcsocketstream.c          |    6 +-
 lib/silcutil/silcsocketstream_i.h        |    6 +-
 lib/silcutil/silcstack.c                 |    5 +-
 lib/silcutil/silctypes.h                 |   15 +-
 lib/silcutil/silcutil.c                  |   25 ++-
 lib/silcutil/stacktrace.c                |  393 +++++++++++++++++++++----
 lib/silcutil/stacktrace.h                |   13 +-
 lib/silcutil/unix/silcunixnet.c          |    3 +
 lib/silcutil/unix/silcunixschedule.c     |    3 +-
 lib/silcutil/unix/silcunixsocketstream.c |    8 +-
