]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3676 --resolve mod_lcr - convert assert to log and fix check condition
authorRupa Schomaker <rupa@rupa.com>
Tue, 22 Nov 2011 22:10:21 +0000 (16:10 -0600)
committerRupa Schomaker <rupa@rupa.com>
Tue, 22 Nov 2011 22:10:21 +0000 (16:10 -0600)
src/mod/applications/mod_lcr/mod_lcr.c

index 41c9d0f85bb87860246d5efd7f6bfdc5e9d949e8..3c5062ed6fcf47e3d8f05590394ef6491aff2b12 100644 (file)
@@ -626,6 +626,8 @@ static int route_add_callback(void *pArg, int argc, char **argv, char **columnNa
                        if (!argv[i] || zstr(argv[i])) {
                                /* maybe we want to consider saying which carriers have null rate fields... maybe they can run the query and find out */
                                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "rate field is null, skipping\n");
+                               /* kill prev/next pointers */
+                               /* additional->prev = NULL; */
                                goto end;
                        }
                        additional->rate = (float)atof(switch_str_nil(argv[i]));
@@ -750,8 +752,16 @@ static int route_add_callback(void *pArg, int argc, char **argv, char **columnNa
 
        /* lcr was not added to any lists, so destroy lcr object here */
        if (lcr_skipped == SWITCH_TRUE) {
-               /* ensure we didn't accidentally add additional to the list */
-               switch_assert(additional->prev == NULL && current->next != additional);
+               /* complain loudly if we're asked to destroy a route that is
+                  added to the route list */
+               if (additional && additional->prev != NULL) {
+                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, 
+                                         "additional->prev != NULL\n");
+               }
+               if (current && current->next == additional) {
+                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, 
+                                         "current->next == additional\n");
+               }
                lcr_destroy(additional);
        }