laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/40306?usp=email )
Change subject: sccp: sccp_addr_to_str_buf(): Use osmo_ss7_pointcode_print_buf() ......................................................................
sccp: sccp_addr_to_str_buf(): Use osmo_ss7_pointcode_print_buf()
During logging, the logging macro may already be using the static buffer API to log context about a related PC. Hence, calling it here may overwrite it. Instead, use osmo_ss7_pointcode_print_buf(). It specially makes sense in this API which is already a _buf() API, where the user precisely expects no use of static buffers.
Change-Id: Ib54984e755dca16d5be4d3d5dac82faa38e83c79 --- M src/sccp_helpers.c 1 file changed, 2 insertions(+), 1 deletion(-)
Approvals: osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified laforge: Looks good to me, approved
diff --git a/src/sccp_helpers.c b/src/sccp_helpers.c index 6643e4e..39099fd 100644 --- a/src/sccp_helpers.c +++ b/src/sccp_helpers.c @@ -355,11 +355,12 @@ { struct osmo_strbuf sb = { .buf = buf, .len = buf_len }; char ipbuf[INET6_ADDRSTRLEN]; + char buf_pc[MAX_PC_STR_LEN];
OSMO_STRBUF_PRINTF(sb, "RI=%s", osmo_sccp_routing_ind_name(addr->ri));
if (addr->presence & OSMO_SCCP_ADDR_T_PC) - OSMO_STRBUF_PRINTF(sb, "%cPC=%s", sep_char, osmo_ss7_pointcode_print(ss7, addr->pc)); + OSMO_STRBUF_PRINTF(sb, "%cPC=%s", sep_char, osmo_ss7_pointcode_print_buf(buf_pc, sizeof(buf_pc), ss7, addr->pc)); if (addr->presence & OSMO_SCCP_ADDR_T_SSN) OSMO_STRBUF_PRINTF(sb, "%cSSN=%s", sep_char, osmo_sccp_ssn_name(addr->ssn)); if (addr->presence & OSMO_SCCP_ADDR_T_IPv4)