- This avoids a race condition that may happen processing tm_request callbacl
- Allows to identify uniquely a ka_dest record
<!-- 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 -->
- [ ] PR should be backported to stable branches
- [x] Tested changes locally
- [x] Related to issue #2448
#### Description
<!-- Describe your changes in detail -->
Check issue
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/2462
-- Commit Summary --
* keepalive: added uuid to ka_dest structure to avoid passing the whole struct to tm
-- File Changes --
M src/modules/keepalive/keepalive.h (5)
M src/modules/keepalive/keepalive_api.c (39)
M src/modules/keepalive/keepalive_core.c (15)
M src/modules/keepalive/keepalive_mod.c (5)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/2462.patchhttps://github.com/kamailio/kamailio/pull/2462.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/2462
### Description
Applying a simple `{s.prefixes}` transformation on a variable with an empty value crashes Kamailio. It is not specific to a particular SIP message being processed.
### Troubleshooting
#### Reproduction
```
request_route {
$var(empty) = "";
$var(result) = $(var(empty){s.prefixes});
drop;
}
```
#### Debugging Data
```
(paste your debugging data here)
```
#### Log Messages
```
kernel: [27707776.714159] kamailio[13060]: segfault at 562232762ff0 ip 00007f82a1e76391 sp 00007ffc3bc7fcd8 error 4 in libc-2.24.so[7f82a1d4d000+195000]
```
#### SIP Traffic
Any SIP traffic will do, as long as this particular scenario is hit, for whatever reason. Could be buggy business logic.
### Possible Solutions
The only thing I could think of is to place the transformation inside an `if` statement which checks for an empty value of the variable the `{s.prefixes]` transformation is being applied to.
### Additional Information
I've tested this with Kamailio 5.1 and 5.4, and both have this issue.
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.4.0 (x86_64/linux)
version: kamailio 5.1.10 (x86_64/linux)
```
* **Operating System**:
```
Kamailio 5.1.10 -> Debian GNU/Linux 9.13 (stretch)
Kamailio 5.4.0 -> Debian GNU/Linux 9.8 (stretch)
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2467