]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
do not allow vars in looked up CIDs
authorRupa Schomaker <rupa@rupa.com>
Fri, 22 Jan 2010 18:38:30 +0000 (18:38 +0000)
committerRupa Schomaker <rupa@rupa.com>
Fri, 22 Jan 2010 18:38:30 +0000 (18:38 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16464 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_cidlookup/mod_cidlookup.c

index c1b908d1e8bad825fa05c828dd0b9fa67995ba7a..ed3061a02d2b35e0da34a7debd102e31a874aa4a 100755 (executable)
@@ -696,6 +696,11 @@ SWITCH_STANDARD_APP(cidlookup_app_function)
                cid = do_lookup(pool, event, number, skipurl, skipcitystate);
        }
        
+       if (switch_string_var_check_const(cid->name)) {
+               switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_CRIT, "Invalid CID data {%s} contains a variable\n", cid->name);      
+               switch_goto_status(SWITCH_STATUS_GENERR, done);
+       }
+       
        if (cid && channel) {
                switch_channel_set_variable(channel, "original_caller_id_name", switch_core_strdup(pool, profile->caller_id_name));
                if (!zstr(cid->src)) {
@@ -778,6 +783,11 @@ SWITCH_STANDARD_API(cidlookup_function)
 
                cid = do_lookup(pool, event, argv[0], skipurl, skipcitystate);
                if (cid) {
+                       if (switch_string_var_check_const(cid->name)) {
+                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Invalid CID data {%s} contains a variable\n", cid->name);       
+                               stream->write_function(stream, "-ERR Invalid CID data {%s} contains a variable\n", cid->name);
+                               switch_goto_status(SWITCH_STATUS_SUCCESS, done);
+                       }
                        stream->write_function(stream, cid->name);
                        if (verbose) {
                                stream->write_function(stream, " (%s) [%s]", cid->area, cid->src);