]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
[mod_callcenter] FS-9891: Checking if we got a valid pointer for a queue
authorItalo Rossi <italorossib@gmail.com>
Thu, 29 Dec 2016 15:59:24 +0000 (12:59 -0300)
committerItalo Rossi <italorossib@gmail.com>
Thu, 29 Dec 2016 15:59:24 +0000 (12:59 -0300)
src/mod/applications/mod_callcenter/mod_callcenter.c

index 88250aefe0f78d872f6789292f781e33203ee018..7f77a31a7812d51754f9870c9f70919bc972a943 100644 (file)
@@ -3122,9 +3122,10 @@ SWITCH_STANDARD_APP(callcenter_function)
                                                  switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_name")),
                                                  switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_number")),
                                                  queue_name, cc_member_cancel_reason2str(h->member_cancel_reason));
-               queue = get_queue(queue_name);
-               queue->calls_abandoned++;
-               queue_rwunlock(queue);
+               if ((queue = get_queue(queue_name))) {
+                       queue->calls_abandoned++;
+                       queue_rwunlock(queue);
+               }
        } else {
                switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(member_session), SWITCH_LOG_DEBUG, "Member %s <%s> is answered by an agent in queue %s\n", switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_name")), switch_str_nil(switch_channel_get_variable(member_channel, "caller_id_number")), queue_name);
 
@@ -3136,9 +3137,10 @@ SWITCH_STANDARD_APP(callcenter_function)
 
                /* Update some channel variables for xml_cdr needs */
                switch_channel_set_variable_printf(member_channel, "cc_cause", "%s", "answered");
-               queue = get_queue(queue_name);
-               queue->calls_answered++;
-               queue_rwunlock(queue);
+               if ((queue = get_queue(queue_name))) {
+                       queue->calls_answered++;
+                       queue_rwunlock(queue);
+               }
 
        }