* channels/chan_skinny.c: Properly check for the length in the
skinny packet to prevent an invalid memcpy. (ASA-2007-016)
* channels/iax2-parser.h, channels/chan_iax2.c,
channels/iax2-parser.c: Ensure that when encoding the contents of
an ast_frame into an iax_frame, that the size of the destination
buffer is known in the iax_frame so that code won't write past
the end of the allocated buffer when sending outgoing frames.
(ASA-2007-014)
* channels/chan_iax2.c: After parsing information elements in IAX
frames, set the data length to zero, so that code later on does
not think it has data to copy. (ASA-2007-015)
* res/res_musiconhold.c: Fix a couple potential minor memory leaks.
load_moh_classes() could return without destroying the loaded
configuration.
* apps/app_chanspy.c: Fixed an issue where chanspy flags were
uninitialized if no options were passed.
* res/res_musiconhold.c: Ensure that adding a user to the list of
users of a specific music on hold class is not done at the same
time as any of the other operations on this list to prevent list
corruption.
* channels/chan_iax2.c: The function make_trunk() can fail and
return -1 instead of a valid new call number. Fix the uses of
this function to handle this instead of treating it as the new
call number. This would cause a deadlock and memory corruption.
* channels/chan_agent.c: The cli command "agent logoff Agent/x
soft" did not work...at all. Now it does.
* res/res_config_odbc.c: Make sure that the ESCAPE immediately
follows the condition that uses LIKE. This fixes realtime
extensions with ODBC.
* apps/app_queue.c: Fix an issue where it was possible to have a
service level of over 100% Between the time recalc_holdtime and
update_queue was called, it was possible that the call could have
been hungup.
* dns.c: Use res_ndestroy on systems that have it. Otherwise, use
res_nclose. This prevents a memleak on NetBSD - and possibly
others.