If the config file does not exist, then the first use crashes Asterisk.
authorTilghman Lesher <tilghman@meg.abyt.es>
Wed, 26 Nov 2008 18:33:04 +0000 (18:33 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Wed, 26 Nov 2008 18:33:04 +0000 (18:33 +0000)
(closes issue #13848)
 Reported by: klaus3000
 Patches:
       udptl.c.patch uploaded by eliel (license 64)
 Tested by: blitzrage

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@159475 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/udptl.c

index 620734b..166e0da 100644 (file)
@@ -74,8 +74,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #define TRUE (!FALSE)
 #endif
 
-static int udptlstart;
-static int udptlend;
+static int udptlstart = 4500;
+static int udptlend = 4599;
 static int udptldebug;                     /*!< Are we debugging? */
 static struct sockaddr_in udptldebugaddr;   /*!< Debug packets to/from this host */
 #ifdef SO_NO_CHECK
@@ -808,7 +808,7 @@ struct ast_udptl *ast_udptl_new_with_bindaddr(struct sched_context *sched, struc
                setsockopt(udptl->fd, SOL_SOCKET, SO_NO_CHECK, &nochecksums, sizeof(nochecksums));
 #endif
        /* Find us a place */
-       x = (ast_random() % (udptlend - udptlstart)) + udptlstart;
+       x = (udptlstart == udptlend) ? udptlstart : (ast_random() % (udptlend - udptlstart)) + udptlstart;
        startplace = x;
        for (;;) {
                udptl->us.sin_port = htons(x);