<div dir="ltr">Hello. We continue testing Opensips-2.3 with mid-registrar module. Opensips installed from <a href="http://yum.opensips.org/2.3/nightly/el/7/x86_64/opensips-yum-nightly">yum.opensips.org/2.3/nightly/el/7/x86_64/opensips-yum-nightly</a> repo.<div>Config file. </div><div><div>loadmodule "mid_registrar.so"</div><div>modparam("mid_registrar", "mode", 1) /* 0 = mirror / 1 = ct / 2 = AoR */</div><div>modparam("mid_registrar", "outgoing_expires", 7200)</div><div>modparam("mid_registrar", "insertion_mode", 0) /* 0 = contact; 1 = path */</div><div>modparam("mid_registrar", "max_contacts", 1)</div><div>modparam("mid_registrar", "retry_after", 30)</div><div>modparam("mid_registrar", "contact_match_param", "rid")</div></div><div><br></div><div><br></div><div><div>if (is_method("REGISTER")) {</div><div>  mid_registrar_save("location", "v");</div><div>  switch ($retcode) {</div><div>  case 1:</div><div>  Â  xlog("L_INFO", "forwarding REGISTER to main registrar ($$ci=$ci)\n");</div><div>  Â  $ru = "sip:<a href="http://192.168.10.201:5061">192.168.10.201:5061</a>";</div><div>  Â  if (!t_relay()) {</div><div>  Â  Â  send_reply("500", "Server Internal Error 1");</div><div>  Â  }</div><div><br></div><div>  Â  break;</div><div>  case 2:</div><div>  Â  xlog("L_INFO", "REGISTER has been absorbed!\n");</div><div>  Â  break;</div><div>  default:</div><div>  Â  xlog("L_ERR", "mid-registrar error!\n");</div><div>  Â  send_reply("500", "Server Internal Error 2");</div><div>  }</div><div><br></div><div>  exit;</div><div>}</div></div><div><br></div><div>And it crashed Opensips.</div><div><br></div><div><div>Apr 19 10:32:10 [23576] DBG:mid_registrar:mid_reg_ct_event: Contact callback (8): contact='sip:2102@192.168.76.96:52788;rinstance=1661374fc8fce109;transport=UDP' | param=(0x7ffff54c59c0 -> (nil)) | data[0]=((nil))</div><div><br></div><div>Program received signal SIGSEGV, Segmentation fault.</div><div>crcitt_string_array (dst=dst@entry=0x7ffff0e109e1 <from_tag+33> "", src=src@entry=0x90, size=size@entry=1) at crc.c:225</div><div>225 Â  Â  Â len=src[i].len;</div><div><br></div></div><div>gdb core file:</div><div><div>#0 Â crcitt_string_array (dst=dst@entry=0x7ffff0e109e1 <from_tag+33> "", src=src@entry=0x90, size=size@entry=1) at crc.c:225</div><div>  Â  Â  Â  i = <optimized out></div><div>  Â  Â  Â  ccitt = 65535</div><div>  Â  Â  Â  c = <optimized out></div><div>  Â  Â  Â  len = <optimized out></div><div>  Â  Â  Â  str_len = 4</div><div>  Â  Â  Â  __FUNCTION__ = "crcitt_string_array"</div><div>#1 Â 0x00007ffff0ba38e5 in generate_fromtag (tag=tag@entry=0x7fffffffdf70, callid=callid@entry=0x90) at uac.c:118</div><div>No locals.</div><div>#2 Â 0x00007ffff0b9da37 in new_auto_dlg_uac (_luri=0x80, _turi=0x70, _ruri=0x10, callid=0x90, _sock=0x0, _d=<optimized out>) at dlg.c:210</div><div>  Â  Â  Â  fromtag = {s = 0x1 <Address 0x1 out of bounds>, len = -145797379}</div><div>  Â  Â  Â  clid = {s = 0x7ffff77a31c0 <_IO_2_1_stderr_> "\207(\255", <incomplete sequence \373>, len = -146460574}</div><div>#3 Â 0x00007fffef0666a9 in unregister_contact (mri=mri@entry=0x0) at ulcb.c:122</div><div>  Â  Â  Â  dlg = 0x7fff00000020</div><div>  Â  Â  Â  ret = <optimized out></div><div>  Â  Â  Â  __FUNCTION__ = "unregister_contact"</div><div>#4 Â 0x00007fffef066f30 in mid_reg_ct_event (binding=<optimized out>, type=<optimized out>, data=<optimized out>) at ulcb.c:173</div><div>  Â  Â  Â  c = <optimized out></div><div>  Â  Â  Â  mri = 0x0</div><div>  Â  Â  Â  __FUNCTION__ = "mid_reg_ct_event"</div><div>#5 Â 0x00007fffefb12a9b in run_ul_callbacks (binding=0x7ffff54c5890, type=8) at ul_callback.h:126</div><div>  Â  Â  Â  cbp = 0x7ffff5223ab8Apr 19 10:32:10 [23576] DBG:mid_registrar:mid_reg_ct_event: Contact callback (8): contact='sip:2102@192.168.76.96:52788;rinstance=1661374fc8fce109;transport=UDP' | param=(0x7ffff54c59c0 -> (nil)) | data[0]=((nil))</div><div><br></div><div>Program received signal SIGSEGV, Segmentation fault.</div><div>crcitt_string_array (dst=dst@entry=0x7ffff0e109e1 <from_tag+33> "", src=src@entry=0x90, size=size@entry=1) at crc.c:225</div><div>225 Â  Â  Â len=src[i].len;</div><div>  Â  Â  Â  ct_extra_idx = 0</div><div>  Â  Â  Â  aor_extra_idx = 0</div><div>  Â  Â  Â  ele = 0x7ffff5223ad0</div><div>#6 Â wb_timer (ins_list=0x7ffff54afda0, _r=0x7ffff54c5890) at urecord.c:320</div><div>  Â  Â  Â  old_state = <optimized out></div><div>  Â  Â  Â  ptr = 0x7ffff54c5890</div><div>  Â  Â  Â  t = <optimized out></div><div>  Â  Â  Â  op = <optimized out></div><div>  Â  Â  Â  ins_done = 0</div><div>#7 Â timer_urecord (_r=_r@entry=0x7ffff54abee0, ins_list=ins_list@entry=0x7ffff54afda0) at urecord.c:396</div><div>No locals.</div><div>#8 Â 0x00007fffefb04031 in mem_timer_udomain (_d=<optimized out>) at udomain.c:1147</div><div>  Â  Â  Â  ptr = 0x7ffff54abee0</div><div>  Â  Â  Â  dest = <optimized out></div><div>  Â  Â  Â  i = 310</div><div>  Â  Â  Â  ret = <optimized out></div><div>  Â  Â  Â  flush = 0</div><div>  Â  Â  Â  it = {node = 0x0, map = 0x7ffff54be350}</div><div>  Â  Â  Â  prev = {node = 0x7ffff54c57f0, map = 0x7ffff54be350}</div><div>  Â  Â  Â  __FUNCTION__ = "mem_timer_udomain"</div><div>#9 Â 0x00007fffefb201a1 in synchronize_all_udomains () at dlist.c:803</div><div>  Â  Â  Â  res = 0</div><div>  Â  Â  Â  ptr = 0x7ffff54afc98</div><div>#10 0x00007fffefb20d87 in destroy () at ul_mod.c:492</div><div>  Â  Â  Â  __FUNCTION__ = "destroy"</div><div>#11 0x00000000004a5d71 in destroy_modules () at sr_module.c:527</div><div>  Â  Â  Â  t = 0x7ffff72245a0</div><div>  Â  Â  Â  foo = 0x7ffff7224250</div><div>  Â  Â  Â  __FUNCTION__ = "destroy_modules"</div><div>#12 0x00000000004a2057 in cleanup (show_status=show_status@entry=1) at main.c:319</div><div>  Â  Â  Â  __FUNCTION__ = "cleanup"</div><div>#13 0x00000000004a2df2 in handle_sigs () at main.c:522</div><div>  Â  Â  Â  chld = <optimized out></div><div>  Â  Â  Â  chld_status = 139</div><div>  Â  Â  Â  overall_status = 139</div><div>  Â  Â  Â  i = <optimized out></div><div>  Â  Â  Â  do_exit = 1</div><div>  Â  Â  Â  __FUNCTION__ = "handle_sigs"</div><div>#14 0x000000000041c818 in main_loop () at main.c:722</div><div>  Â  Â  Â  startup_done = <optimized out></div><div>  Â  Â  Â  chd_rank = 5</div><div>#15 main (argc=<optimized out>, argv=<optimized out>) at main.c:1283</div><div>  Â  Â  Â  cfg_stream = <optimized out></div><div>  Â  Â  Â  c = <optimized out></div><div>  Â  Â  Â  r = <optimized out></div><div>  Â  Â  Â  tmp = 0xf0b2e4 <Address 0xf0b2e4 out of bounds></div><div>  Â  Â  Â  tmp_len = <optimized out></div><div>  Â  Â  Â  port = <optimized out></div><div>  Â  Â  Â  proto = <optimized out></div><div>  Â  Â  Â  protos_no = <optimized out></div><div>  Â  Â  Â  options = 0x57c0f8 "f:cCm:M:b:l:n:N:rRvdDFETSVhw:t:u:g:P:G:W😨:"</div><div>  Â  Â  Â  seed = 2690059408</div><div>  Â  Â  Â  rfd = <optimized out></div><div>  Â  Â  Â  __FUNCTION__ = "main"</div><div><br></div></div></div>