<!-- Kamailio Pull Request Template -->

<!--
IMPORTANT:
  - for detailed contributing guidelines, read:
    https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
  - pull requests must be done to master branch, unless they are backports
    of fixes from master branch to a stable branch
  - backports to stable branches must be done with 'git cherry-pick -x 
...'
  - code is contributed under BSD for core and main components (tm, sl, auth, 
tls)
  - code is contributed GPLv2 or a compatible license for the other components
  - GPL code is contributed with OpenSSL licensing exception
-->

#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the 
checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING 
guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on 
sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, 
...)
- [ x Each component has a single commit (if not, squash them into one commit)
- [ x No commits to README files for modules (changes must be done to docbook 
files
in `doc/` subfolder, the README file is autogenerated)

#### Type Of Change
- [x] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)

#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the 
checkboxes that apply -->
- [x] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)

#### Description
<!-- Describe your changes in detail -->

segfault

```
#0  0x0000ffffb9934840 in cfg_update_local (no_cbs=0) at 
../../core/cfg/cfg_struct.h:366
366                     cfg_child_cb = cfg_child_cb->next;
(gdb) print cfg_child_cb
$1 = (cfg_child_cb_t *) 0x0
```

example lua:

```
function ksr_route_nats()
        KSR.tm.t_newtran()
        local tindex = KSR.pv.gete("$T(id_index)")
        local tlabel = KSR.pv.gete("$T(id_label)")
        KSR.tmx.t_suspend()

        local req = {
                jsonrpc = "2.0", method = "route",
                id = tindex .. ':' .. tlabel,
                params = {
                        from = KSR.pv.gete("$fu"),
                        to = KSR.pv.gete("$tu"),
                }
        }
        local rpc = cjson.encode(req)
        KSR.info("rpc: " .. rpc .. "\n")
        KSR.nats.publish("cn.xswitch.ctrl.route", rpc)
        KSR.x.exit();
end

function handle_nats_response(data)
        msg = cjson.decode(data)
        if (not msg) or (not msg.id) then return end
        KSR.info("========= msg.id: " .. msg.id .. "\n")

        if not msg.result then
                KSR.error("response has no result\n")
                return
        end

        tindex, tlabel = msg.id:match("(.+):(.+)")
        if tindex and tlabel then
                KSR.pv.sets('$var(nats_response)', data)
                KSR.tmx.t_continue(tindex, tlabel, 'ksr_nats_continue')
        end
end
```

I'm not sure if it's the proper fix, but this pr fixed the seg. Thanks.


You can view, comment on, or merge this pull request online at:

  https://github.com/kamailio/kamailio/pull/3396

-- Commit Summary --

  * core: fix a seg while t_continue with nats module

-- File Changes --

    M src/core/cfg/cfg_struct.h (2)

-- Patch Links --

https://github.com/kamailio/kamailio/pull/3396.patch
https://github.com/kamailio/kamailio/pull/3396.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3396
You are receiving this because you are subscribed to this thread.

Message ID: <kamailio/kamailio/pull/3...@github.com>
_______________________________________________
Kamailio (SER) - Development Mailing List
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org

Reply via email to