[sr-dev] evapi buffer overflow?

Alex Balashov abalashov at evaristesys.com
Fri Jan 9 22:01:51 CET 2015


Hi,

I'm using evapi to emit JSON blobs to share presence event transitions 
with a TCP client:

loadmodule "evapi"

modparam("evapi", "workers", 4)
modparam("evapi", "bind_addr", "0.0.0.0:8010")
modparam("evapi", "netstring_format", 0)


         if($hdr(Event) eq 'dialog' && $cl > 0) {
                 $xml(u=>doc) = $rb;
                 $var(state) = 
$xml(u=>xpath:/di:dialog-info/di:dialog/di:state/text());

                 evapi_relay("{ \"type\": \"state_transition\", "
                             "\"sip_user\": \"$(fU{s.escape.common})\", "
                             "\"sip_domain\": \"$(fd{s.escape.common})\", "
                             "\"state\": \"$var(state)\" }");
         }

Every once in a while, however, my consumer service's JSON.parse() 
throws a parsing exception. There seems to be no particular pattern. 
When I investigated the actual string being sent, I found two objects 
concatenated:

JSON parsing exception: SyntaxError: Unexpected token {
Raw received string was: { "type": "state_transition", "sip_user": 
"6789540671", "sip_domain": "sip.evaristesys.com", "state": "" }{ 
"type": "state_transition", "sip_user": "6789540671", "sip_domain": 
"sip.evaristesys.com", "state": "" }

Any ideas as to why this might happen?

Thanks,

-- Alex

-- 
Alex Balashov - Principal
Evariste Systems LLC
235 E Ponce de Leon Ave
Suite 106
Decatur, GA 30030
United States

Tel: +1-678-954-0670
Web: http://www.evaristesys.com/, http://www.alexbalashov.com/



More information about the sr-dev mailing list