fix locking issue on empty callList
authorAlexandr Anikin <may@telecom-service.ru>
Wed, 20 Jun 2012 17:48:20 +0000 (17:48 +0000)
committerAlexandr Anikin <may@telecom-service.ru>
Wed, 20 Jun 2012 17:48:20 +0000 (17:48 +0000)
(issue ASTERISK-19298)
Reported by:
        Dmitry Melekhov
Patches:
        ASTERISK-18322-2.patch
........

Merged revisions 369146 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 369147 from http://svn.asterisk.org/svn/asterisk/branches/10

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

addons/ooh323c/src/ooCalls.c
addons/ooh323c/src/ooq931.c

index 046b5fc..70677ab 100644 (file)
@@ -265,14 +265,13 @@ int ooEndCall(OOH323CallData *call)
 
 int ooRemoveCallFromList (OOH323CallData *call)
 {
-   if(!call)
+   if(!call || !gH323ep.callList)
       return OO_OK;
 
    ast_mutex_lock(&callListLock);
 
    OOTRACEINFO3("Removing call %lx: %s\n", call, call->callToken);
 
-   if (!gH323ep.callList) return OO_OK;
    if(call == gH323ep.callList)
    {
       if(!call->next)
index 202595f..fb95269 100644 (file)
@@ -2373,7 +2373,7 @@ int ooH323MakeCall(char *dest, char *callToken, ooCallOptions *opts)
       else
          OO_CLRFLAG(call->flags, OO_M_TUNNELING);
 
-      if(opts->disableGk)
+      if(opts->disableGk || gH323ep.gkClient == NULL)
          OO_SETFLAG(call->flags, OO_M_DISABLEGK);
       else
          OO_CLRFLAG(call->flags, OO_M_DISABLEGK);