Use StringPrintf.
This doesn't replace every asprintf in netd, but it replaces the ones in code
I touched.
Change-Id: I2de5c7772523372bb36145e66e885aa8132ad58e
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);
}