pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/39137?usp=email )
Change subject: mgcp-client: Fix wrong value passed to strerror() ......................................................................
mgcp-client: Fix wrong value passed to strerror()
errno is positive, hence we need to change the value of "res" being passed to strerror(). While at it, use thread-safe variant strerror_r().
Change-Id: Ibc278199bc8f66e5521bff72bad150f44716f3eb --- M src/libosmo-mgcp-client/mgcp_client.c 1 file changed, 6 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/37/39137/1
diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index bcd1268..e577b34 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -786,8 +786,10 @@ struct mgcp_client *mgcp = osmo_iofd_get_data(iofd);
if (res <= 0) { + char errbuf[128] = ""; + strerror_r(-res, errbuf, sizeof(errbuf)); LOGPMGW(mgcp, LOGL_ERROR, "Failed to read: %s: %d='%s'\n", - osmo_iofd_get_name(iofd), res, strerror(res)); + osmo_iofd_get_name(iofd), res, errbuf);
msgb_free(msg); return; @@ -822,8 +824,10 @@ struct mgcp_client *mgcp = osmo_iofd_get_data(iofd);
if (OSMO_UNLIKELY(res != msg->len)) { + char errbuf[128] = ""; + strerror_r(-res, errbuf, sizeof(errbuf)); LOGPMGW(mgcp, LOGL_ERROR, "Failed to Tx MGCP: %s: %d='%s'; msg: len=%u '%s'...\n", - osmo_iofd_get_name(mgcp->iofd), res, strerror(res), + osmo_iofd_get_name(mgcp->iofd), res, errbuf, msg->len, osmo_escape_str((const char *)msg->data, OSMO_MIN(42, msg->len))); } }