ClatdController - only generate v4-interface name in one spot

Test: builds, atest
Bug: 65674744
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I9a18cb8b105e5c0cfdf8feff0f73c99643b0d6b6
diff --git a/server/ClatdController.cpp b/server/ClatdController.cpp
index 373d545..d82198b 100644
--- a/server/ClatdController.cpp
+++ b/server/ClatdController.cpp
@@ -344,6 +344,7 @@
 
 // Initializes a ClatdTracker for the specified interface.
 int ClatdController::ClatdTracker::init(unsigned networkId, const std::string& interface,
+                                        const std::string& v4interface,
                                         const std::string& nat64Prefix) {
     netId = networkId;
 
@@ -356,7 +357,7 @@
     snprintf(netIdString, sizeof(netIdString), "%u", netId);
     strlcpy(iface, interface.c_str(), sizeof(iface));
     ifIndex = if_nametoindex(iface);
-    snprintf(v4iface, sizeof(v4iface), "v4-%s", iface);
+    strlcpy(v4iface, v4interface.c_str(), sizeof(v4iface));
     v4ifIndex = if_nametoindex(v4iface);
 
     // Pass in everything that clatd needs: interface, a netid to use for DNS lookups, a fwmark for
@@ -422,10 +423,13 @@
     unique_fd tmpTunFd(res);
 
     // 4. create the v4-... tun interface
+    std::string v4interface("v4-");
+    v4interface += interface;
+
     struct ifreq ifr = {
             .ifr_flags = IFF_TUN,
     };
-    snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "v4-%s", interface.c_str());
+    strlcpy(ifr.ifr_name, v4interface.c_str(), sizeof(ifr.ifr_name));
 
     res = ioctl(tmpTunFd, TUNSETIFF, &ifr, sizeof(ifr));
     if (res == -1) {
@@ -436,7 +440,7 @@
 
     // 5. initialize tracker object
     ClatdTracker tracker;
-    int ret = tracker.init(networkId, interface, nat64Prefix);
+    int ret = tracker.init(networkId, interface, v4interface, nat64Prefix);
     if (ret) return ret;
 
     // 6. create a throwaway socket to reserve a file descriptor number