diff --git a/server/InterfaceController.cpp b/server/InterfaceController.cpp
index 64b8453..5bca413 100644
--- a/server/InterfaceController.cpp
+++ b/server/InterfaceController.cpp
@@ -21,6 +21,7 @@
 #define LOG_TAG "InterfaceController"
 #include <cutils/log.h>
 #include <utils/file.h>
+#include <utils/stringprintf.h>
 
 #include "InterfaceController.h"
 #include "RouteController.h"
@@ -44,15 +45,12 @@
 }
 
 int InterfaceController::writeIPv6ProcPath(const char *interface, const char *setting, const char *value) {
-	char *path;
 	if (!isIfaceName(interface)) {
 		errno = ENOENT;
 		return -1;
 	}
-	asprintf(&path, "%s/%s/%s", ipv6_proc_path, interface, setting);
-	bool success = android::WriteStringToFile(value, path);
-	free(path);
-	return success;
+	std::string path(android::StringPrintf("%s/%s/%s", ipv6_proc_path, interface, setting));
+	return android::WriteStringToFile(value, path);
 }
 
 int InterfaceController::setEnableIPv6(const char *interface, const int on) {
@@ -106,21 +104,16 @@
 //             ID to get the table. If it's set to -1000, routes from interface ID 5 will go into
 //             table 1005, etc.
 void InterfaceController::setAcceptRARouteTable(int tableOrOffset) {
-	char* value;
-	asprintf(&value, "%d", tableOrOffset);
-	setOnAllInterfaces("accept_ra_rt_table", value);
-	free(value);
+	std::string value(android::StringPrintf("%d", tableOrOffset));
+	setOnAllInterfaces("accept_ra_rt_table", value.c_str());
 }
 
 int InterfaceController::setMtu(const char *interface, const char *mtu)
 {
-	char *path;
 	if (!isIfaceName(interface)) {
 		errno = ENOENT;
 		return -1;
 	}
-	asprintf(&path, "%s/%s/mtu", sys_net_path, interface);
-	bool success = android::WriteStringToFile(mtu, path);
-	free(path);
-	return success;
+	std::string path(android::StringPrintf("%s/%s/mtu", sys_net_path, interface));
+	return android::WriteStringToFile(mtu, path);
 }
