Harald Welte has submitted this change and it was merged.

Change subject: socket: use inet_ntop() instead of inet_ntoa() in 
osmo_sock_local_ip()
......................................................................


socket: use inet_ntop() instead of inet_ntoa() in osmo_sock_local_ip()

The function inet_ntoa() stores its result in a static buffer and
returns the pointer. When inet_ntoa() is called subsequently it
overwrite the content of its static buffer with the new result.

Since we osmo_sock_local_ip() is a library function we should use
the more safe variant inet_ntop() in order to prevent unintentionally
overwriting data that the caller might still need. Such an error
would be hard to find.

- Use the more safe inet_ntop() inestead of inet_ntoa()

Change-Id: I9852b57736432032542bd96b6fdd4a2f08fc1f64
---
M src/socket.c
1 file changed, 2 insertions(+), 2 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/socket.c b/src/socket.c
index 35cce64..0378970 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -831,9 +831,9 @@
        if (rc < 0)
                return -EINVAL;
        if (local_addr.sin_family == AF_INET)
-               strncpy(local_ip, inet_ntoa(local_addr.sin_addr), 
INET_ADDRSTRLEN);
+               inet_ntop(AF_INET, &local_addr.sin_addr, local_ip, 
INET_ADDRSTRLEN);
        else if (local_addr.sin_family == AF_INET6)
-               strncpy(local_ip, inet_ntoa(local_addr.sin_addr), 
INET6_ADDRSTRLEN);
+               inet_ntop(AF_INET6, &local_addr.sin_addr, local_ip, 
INET6_ADDRSTRLEN);
        else
                return -EINVAL;
 

-- 
To view, visit https://gerrit.osmocom.org/5988
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I9852b57736432032542bd96b6fdd4a2f08fc1f64
Gerrit-PatchSet: 1
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: dexter <pma...@sysmocom.de>
Gerrit-Reviewer: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Jenkins Builder

Reply via email to