Thank you for your input so far. All the alternatives seem to work-around the issue but not fulfill our needs.
We have debugged a little using `gdb`. We noticed that the value of `msg->rcv->bind_address->address_str` is correct before calling `do_action`. Afterwards, it is wrong.
Before: ``` s = "172.20.21.3" len = 11 ```
After: ``` s = "217.116.120.247" len = 11 (sic!) ```
We took a closer look (step by step) and the problem seems to be using `ip_addr2a`. It returns a pointer to a local static `char[]`. This is assigned to the original struct of `address_str` inside of `parsing_hepv3_message`.
Later, when `ip_addr2a` is called again for xlog, then the same address is used again and hence the value of `address_str.s` is overwriten.
A quick look at the git history for the functions did not show any relevant changes to my untrained eyes.
As the jump from 5.1/5.4 (debian jessie) to 5.5/5.8 (debian bookworm) is kind of huge, maybe this is related to changes in the compiler?