summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-04-21 14:43:03 +0200
committerThomas Haller <thaller@redhat.com>2016-04-21 15:05:34 +0200
commita6477fca486b756653c4fd0ee1adca6c628d6656 (patch)
tree2a040a548f058acb65b771af13d4c4a785c6f562
parente714a20bc2464dc97492731a0d656e8c6bab65aa (diff)
downloadNetworkManager-a6477fca486b756653c4fd0ee1adca6c628d6656.tar.gz
platform: stack-allocate anycast_mask path in _linktype_get_type()
-rw-r--r--src/platform/nm-linux-platform.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
index 931a25391c..4164e0c091 100644
--- a/src/platform/nm-linux-platform.c
+++ b/src/platform/nm-linux-platform.c
@@ -697,9 +697,8 @@ _linktype_get_type (NMPlatform *platform,
return NM_LINK_TYPE_IP6TNL;
if (ifname) {
+ char anycast_mask[NM_STRLEN ("/sys/class/net/123456789012345/anycast_mask\0") + 100 /*safety*/];
gs_free char *driver = NULL;
- gs_free char *sysfs_path = NULL;
- gs_free char *anycast_mask = NULL;
gs_free char *devtype = NULL;
/* Fallback OVS detection for kernel <= 3.16 */
@@ -716,8 +715,11 @@ _linktype_get_type (NMPlatform *platform,
}
}
- sysfs_path = g_strdup_printf ("/sys/class/net/%s", ifname);
- anycast_mask = g_strdup_printf ("%s/anycast_mask", sysfs_path);
+ nm_sprintf_buf (anycast_mask,
+ "/sys/class/net/%s/anycast_mask",
+ NM_ASSERT_VALID_PATH_COMPONENT (ifname));
+ nm_assert (strlen (anycast_mask) < sizeof (anycast_mask) - 1);
+
if (g_file_test (anycast_mask, G_FILE_TEST_EXISTS))
return NM_LINK_TYPE_OLPC_MESH;