Blob Blame History Raw
From 6db5ec8bba65b9eb3bbc0518ad74ed991126320d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
Date: Tue, 15 Feb 2022 11:46:06 +0400
Subject: [PATCH] Replace deprecated inet_ntoa with safer inet_ntop
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

inet_ntoa() is a legacy API with MT issues. Use the recommended
alternative instead. This makes some code checkers happy, and could
potentially fix issues if other parts of the process were to use
inet_ntoa() at the same time..

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 main.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/main.c b/main.c
index 3bf585924f7c..109dc59eea29 100644
--- a/main.c
+++ b/main.c
@@ -336,6 +336,7 @@ static int recvfd(int sock)
 static int parent(int sock, int ready_fd, int exit_fd, const char *api_socket,
                   struct slirp4netns_config *cfg, pid_t target_pid)
 {
+    char str[INET6_ADDRSTRLEN];
     int rc, tapfd;
     struct in_addr vdhcp_end = {
 #define NB_BOOTP_CLIENTS 16
@@ -351,25 +352,24 @@ static int parent(int sock, int ready_fd, int exit_fd, const char *api_socket,
     close(sock);
     printf("Starting slirp\n");
     printf("* MTU:             %d\n", cfg->mtu);
-    printf("* Network:         %s\n", inet_ntoa(cfg->vnetwork));
-    printf("* Netmask:         %s\n", inet_ntoa(cfg->vnetmask));
-    printf("* Gateway:         %s\n", inet_ntoa(cfg->vhost));
-    printf("* DNS:             %s\n", inet_ntoa(cfg->vnameserver));
-    printf("* DHCP begin:      %s\n", inet_ntoa(cfg->vdhcp_start));
-    printf("* DHCP end:        %s\n", inet_ntoa(vdhcp_end));
-    printf("* Recommended IP:  %s\n", inet_ntoa(cfg->recommended_vguest));
+    printf("* Network:         %s\n", inet_ntop(AF_INET, &cfg->vnetwork, str, sizeof(str)));
+    printf("* Netmask:         %s\n", inet_ntop(AF_INET, &cfg->vnetmask, str, sizeof(str)));
+    printf("* Gateway:         %s\n", inet_ntop(AF_INET, &cfg->vhost, str, sizeof(str)));
+    printf("* DNS:             %s\n", inet_ntop(AF_INET, &cfg->vnameserver, str, sizeof(str)));
+    printf("* DHCP begin:      %s\n", inet_ntop(AF_INET, &cfg->vdhcp_start, str, sizeof(str)));
+    printf("* DHCP end:        %s\n", inet_ntop(AF_INET, &vdhcp_end, str, sizeof(str)));
+    printf("* Recommended IP:  %s\n", inet_ntop(AF_INET, &cfg->recommended_vguest, str, sizeof(str)));
     if (api_socket != NULL) {
         printf("* API Socket:      %s\n", api_socket);
     }
 #if SLIRP_CONFIG_VERSION_MAX >= 2
     if (cfg->enable_outbound_addr) {
         printf("* Outbound IPv4:    %s\n",
-               inet_ntoa(cfg->outbound_addr.sin_addr));
+               inet_ntop(AF_INET, &cfg->outbound_addr.sin_addr, str, sizeof(str)));
     }
     if (cfg->enable_outbound_addr6) {
-        char str[INET6_ADDRSTRLEN];
-        if (inet_ntop(AF_INET6, &cfg->outbound_addr6.sin6_addr, str,
-                      INET6_ADDRSTRLEN) != NULL) {
+        if (inet_ntop(AF_INET6, &cfg->outbound_addr6.sin6_addr,
+                      str, sizeof(str)) != NULL) {
             printf("* Outbound IPv6:    %s\n", str);
         }
     }
@@ -383,7 +383,7 @@ static int parent(int sock, int ready_fd, int exit_fd, const char *api_socket,
         printf(
             "WARNING: 127.0.0.1:* on the host is accessible as %s (set "
             "--disable-host-loopback to prohibit connecting to 127.0.0.1:*)\n",
-            inet_ntoa(cfg->vhost));
+            inet_ntop(AF_INET, &cfg->vhost, str, sizeof(str)));
     }
     if (cfg->enable_sandbox && geteuid() != 0) {
         if ((rc = nsenter(target_pid, NULL, NULL, true)) < 0) {
-- 
2.34.1.428.gdcc0cd074f0c