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.