[SR-Users] tsilo ts_store() causes segfault if method is not INVITE

Anthony Alba ascanio.alba7 at gmail.com
Sat Oct 7 02:59:41 CEST 2017


I was modifying the routing blocks of the tsilo push notifications
recipe from Federico Cabiddu and could cause a segfault in kamailio
5.0.3 if due to misconfiguration an ACK reached ts_store().

## modify https://www.kamailio.org/events/2015-KamailioWorld/Day2/20-Federico.Cabiddu-Kamailio-In-A-Mobile-World.pdf
## various route blocks will lead to here
## including ACK and INVITE...
route[LOCALRELAY) {

## ooops: did not check method is INVITE
    t_relay();
    ts_store();
    $sht(vtp=>stored::$rU) = 1;
    xlog("L_INFO", "stored transaction [$T(id_index):$T(id_label)] $fU
=> $rU\n");
## saw an ACK and caused segfault
}

If properly checked for INVITE: if (is_method("INVITE")) { /* do tsilo
stuff */ } it works.

I'm wondering whether ts_store() should/could be more defensive and
show an error like "..not the right context for ts_store().." .

Thanks for you thoughts.

Anthony



More information about the sr-users mailing list