Commit Graph

7639 Commits

Author SHA1 Message Date
Russell Bryant
e656632831 Creating tag for the release of asterisk-1.2.28.1
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.2.28.1@117691 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-21 22:18:35 +00:00
Russell Bryant
40520cc2a4 Fix a race condition that bbryant just found while doing some IAX2 testing.
He was running Asterisk trunk running IAX2 calls through a few Asterisk boxes,
however, the audio was extremely choppy.  We looked at a packet trace and saw
a storm of INVAL and VNAK frames being sent from one box to another.

It turned out that what had happened was that one box tried to send a CONTROL
frame before the 3 way handshake had completed.  So, that frame did not include
the destination call number, because it didn't have it yet.  Part of our recent
work for security issues included an additional check to ensure that frames that
are supposed to include the destination call number have the correct one.  This
caused the frame to be rejected with an INVAL.  The frame would get retransmitted
for forever, rejected every time ...

This race condition exists in all versions that got the security changes,
in theory.  However, it is really only likely that this would cause a problem in
Asterisk trunk.  There was a control frame being sent (SRCUPDATE) at the _very_
beginning of the call, which does not exist in 1.2 or 1.4.  However, I am fixing
all versions that could potentially be affected by the introduced race condition.

These changes are what bbryant and I came up with to fix the issue.  Instead of
simply dropping control frames that get sent before the handshake is complete,
the code attempts to wait a little while, since in most cases, the handshake
will complete very quickly.  If it doesn't complete after yielding for a little
while, then the frame gets dropped.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@115564 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-08 19:14:04 +00:00
Russell Bryant
c5c3cb32f1 Remove remnants of dlinkedlists. I didn't actually use them in the final version
of my IAX2 improvements.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@115511 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-07 16:22:49 +00:00
Jason Parker
3ce33b090c read requires an argument on some non-bash shells
(closes issue #12593)
Reported by: bkruse
Patches:
      getilbc.sh_12593_v1.diff uploaded by bkruse (license 132)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@115421 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-06 19:54:57 +00:00
Russell Bryant
f8d551bd2b Merge changes from team/russell/iax2_find_callno_1.2
These changes address a critical performance issue introduced in the latest
release.  The fix for the latest security issue included a change that made
Asterisk randomly choose call numbers to make them more difficult to guess by
attackers.  However, due to some inefficient (this is by far, an understatement)
code, when Asterisk chose high call numbers, chan_iax2 became unusable after
just a small number of calls.  On a small embedded platform, it would not be
able to handle a single call.  On my Intel Core 2 Duo @ 2.33 GHz, I couldn't
run more than about 16 IAX2 channels.  Ouch.

These changes address some performance issues of the find_callno() function
that have bothered me for a very long time.  On every incoming media frame,
it iterated through every possible call number trying to find a matching
active call.  This involved a mutex lock and unlock for each call number
checked.  So, if the random call number chosen was 20000, then every media
frame would cause 20000 locks and unlocks.  Previously, this problem was
not as obvious since Asterisk always chose the lowest call number it could.

A second container for IAX2 pvt structs has been added.  It is an astobj2
hash table.  When we know the remote side's call number, the pvt goes into
the hash table with a hash value of the remote side's call number.  Then,
lookups for incoming media frames are a very fast hash lookup instead of an
absolutely insane array traversal.

In a quick test, I was able to get more than 3600% more IAX2 channels
on my machine with these changes.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@115296 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-05 17:53:26 +00:00
Kevin P. Fleming
a698166af0 stop script from appending source code if run multiple times
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@114822 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-29 12:52:32 +00:00
Russell Bryant
38419fb811 When we receive a full frame that is supposed to contain our call number,
ensure that it has the correct one.
(closes issue #10078)
(AST-2008-006)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@114561 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-22 22:20:35 +00:00
Kevin P. Fleming
8f7422b931 update UPGRADE notes to document usage of the script
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@111125 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-26 19:49:30 +00:00
Kevin P. Fleming
1501383484 add a script to make getting the iLBC source code simple for end users
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@111019 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-26 18:58:37 +00:00
Kevin P. Fleming
3c780866b3 due to licensing restrictions, we cannot distribute the source code for iLBC encoding and decoding... so remove it, and add instructions on how the user can obtain it themselves
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@110869 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-26 15:53:46 +00:00
Russell Bryant
62766834c8 Fix some very broken code that was introduced in 1.2.26 as a part of the security
fix.  The dnsmgr is not appropriate here.  The dnsmgr takes a pointer to an address
structure that a background thread continuously updates.  However, in these cases,
a stack variable was passed.  That means that the dnsmgr thread would be continuously
writing to bogus memory.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@110335 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-20 21:53:27 +00:00
Terry Wilson
53ca368854 Fix character string being treated as format string
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@109488 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-18 16:27:04 +00:00
Jason Parker
866bf7984a Do not return with a successful authentication if the From header ends up empty.
(AST-2008-003)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@109391 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-18 15:08:41 +00:00
Russell Bryant
dd7fd5e641 Change misery.digium.com to pbx.digium.com
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@96931 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-07 20:46:22 +00:00
Tilghman Lesher
47b472894b Fix for fix for security fix (third time's the charm?)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@94661 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-23 01:30:42 +00:00
Russell Bryant
4208af2204 Fix another potential seg fault ...
(closes issue #11606)
Reported by: dimas


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@94255 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-20 20:21:41 +00:00
Russell Bryant
04e4f3d345 Fix a couple of places where it's possible to dereference a NULL pointer.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@94214 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-20 17:29:11 +00:00
Tilghman Lesher
0f7afb14e4 Oops, missed this one case
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@93675 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-18 18:44:41 +00:00
Tilghman Lesher
1e6902b29d Fixing AST-2007-027 (Closes issue #11119)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@93667 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-18 18:23:06 +00:00
Tilghman Lesher
1897d857f0 Properly escape src and dst fields (Fixes AST-2007-026)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@90170 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-29 21:10:45 +00:00
Kevin P. Fleming
c58235bed4 clarify the OpenSSL and OpenH323 license exceptions
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@82334 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-13 18:10:12 +00:00
Russell Bryant
0edee75c07 Revert patch committed for issue #9660. It broke E&M trunks.
(closes issue #10360)
(closes issue #10364)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@78370 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-07 17:44:04 +00:00
Steve Murphy
726fa701da This patch hopefully solves 10141; The user is running with it, and it doesn't appear to harm asterisk's operation, and may prevent a crash. I'll store it in 1.2, as we have shut down support on 1.2, but since I developed the patch before support finished, and it might affect 1.4 and trunk, I'm going ahead with it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@77942 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-02 17:56:37 +00:00
Steve Murphy
330090142f This probably isn't super-general, but it's a first stab at using kill -11 to generate a core file instead of gcore.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@77842 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-31 19:19:35 +00:00
Tilghman Lesher
2cdedcbe94 Revert change in revision 71656, even though it fixed a bug, because many people were depending upon the (broken) behavior.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@77782 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-30 18:40:54 +00:00
Joshua Colp
ea98dd3dfc (closes issue #10334)
Reported by: ramonpeek
Pass through the return value from macro_exec through the MacroIf application.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@77767 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-30 14:50:02 +00:00
Steve Murphy
32ade7d7fc this fixes bug 10293, where the error message because defaultzone or loadzone was not defined was confusing
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@76978 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-25 00:07:24 +00:00
Tilghman Lesher
325bfeeda5 Oops, res contains the error code, not errno. I was wondering why a mutex was reporting "No such file or directory"...
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@76934 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-24 22:11:33 +00:00
Jason Parker
f95db061fd Don't create the Asterisk channel until we are starting the PBX on it.
(ASA-2007-018)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@76802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-24 16:32:04 +00:00
Joshua Colp
a62bba55d8 (closes issue #5866)
Reported by: tyler
Do not force channel format changes when a generator is present. The generator may have changed the formats itself and changing them back would cause issues.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@76653 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 18:28:13 +00:00
Joshua Colp
2405536de9 (closes issue #10236)
Reported by: homesick
Patches:
      rpid_1.4_75840.patch uploaded by homesick (license 91)
Accept Remote Party ID on guest calls.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@76560 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 14:32:07 +00:00
Tilghman Lesher
44b5abf39f We should not use C++ reserved words in API headers (closes issue #10266)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@76409 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-22 21:39:55 +00:00
Russell Bryant
831ebbebb7 Backport a fix for a memory leak that was fixed in trunk in reivision 76221
by rizzo.  The memory used for the localaddr list was not freed during a
configuration reload.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@76226 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-21 02:01:46 +00:00
Joshua Colp
a7047b7ed5 (closes issue #10247)
Reported by: fkasumovic
Patches:
      chan_sip.patch uploaded by fkasumovic (license #101)
Drop any peer realm authentication entries when reloading so multiple entries do not get added to the peer.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@76080 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-20 17:16:48 +00:00
Russell Bryant
9df29ba46f When processing full frames, take sequence number wraparound into account when
deciding whether or not we need to request retransmissions by sending a VNAK.
This code could cause VNAKs to be sent erroneously in some cases, and to not
be sent in other cases when it should have been.
(closes issue #10237, reported and patched by mihai)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75927 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-19 15:49:42 +00:00
Russell Bryant
6b5a7a6f64 When traversing the queue of frames for possible retransmission after
receiving a VNAK, handle sequence number wraparound so that all frames that 
should be retransmitted actually do get retransmitted.
(issue #10227, reported and patched by mihai)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75757 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-18 21:09:13 +00:00
Tilghman Lesher
dc4a74f57f Store prior to copy (closes issue #10193)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75748 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-18 20:31:36 +00:00
Dwayne M. Hubbard
dd77af3fe3 removed the word 'pissed' from ast_log(...) function call for BE-90
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75657 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-18 17:48:33 +00:00
Russell Bryant
d359de6edb Properly check for the length in the skinny packet to prevent an invalid memcpy.
(ASA-2007-016)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75449 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-17 20:57:09 +00:00
Russell Bryant
d0b4144eb4 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)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75444 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-17 20:45:27 +00:00
Russell Bryant
d2cb9b0d3b 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)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75440 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-17 20:41:41 +00:00
Kevin P. Fleming
6fc518335e provide proper copyright/license attribution for this structure that was copied from a BSD-licensed header file long, long ago...
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75304 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-16 20:46:58 +00:00
Kevin P. Fleming
ffae2ad2fa install the LICENSE file along with the music files
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75257 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-16 18:33:02 +00:00
Kevin P. Fleming
e38a7d523c move FreePlayMusic files into a subdirectory, and include a license statement for them
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75251 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-16 18:10:40 +00:00
Russell Bryant
8e7cb1aa7a Fix a couple potential minor memory leaks. load_moh_classes() could return
without destroying the loaded configuration.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75107 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-13 20:35:22 +00:00
Mark Michelson
a8d3745147 Fixed an issue where chanspy flags were uninitialized if no options were passed.
What triggered this investigation was an IRC chat where some people's quiet flags were
set while others' weren't even though none of them had specified the q option.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75066 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-13 20:10:39 +00:00
Russell Bryant
ab2a84f410 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.  Using the global moh_data lock for this is not
ideal, but it is what is used to protect these lists everywhere else in the
module, and I am only changing what is necessary to fix the bug.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75059 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-13 20:07:21 +00:00
Russell Bryant
460df0480b (closes issue #9660)
Reported by: mmacvicar
Patches submitted by: bbryant, russell
Tested by: mmacvicar, marco, arcivanov, jmhunter, explidous

When using a TDM400P (and probably other analog cards) there was a chance that
you could hang up and pick the phone back up where it has been long enough to
be not considered a flash hook, but too soon such that the device reports that
it is busy and the person on the phone will only hear silence.  This patch
makes chan_zap more tolerant of this and gives the device a couple of seconds 
to succeed so the person on the phone happily gets their dialtone.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@75052 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-13 19:10:00 +00:00
Joshua Colp
577c0ebedd Only print out a warning for situations where it is actually helpful. (issue #10187 reported by denke)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@74814 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-12 15:51:24 +00:00
Russell Bryant
2c757b4ab7 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.
(possible cause of issue #9614 and others, patch by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@74766 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-11 22:53:26 +00:00