diff options
author | Thomas Haller <thaller@redhat.com> | 2016-04-21 14:43:03 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2016-04-21 15:05:34 +0200 |
commit | a6477fca486b756653c4fd0ee1adca6c628d6656 (patch) | |
tree | 2a040a548f058acb65b771af13d4c4a785c6f562 | |
parent | e714a20bc2464dc97492731a0d656e8c6bab65aa (diff) | |
download | NetworkManager-a6477fca486b756653c4fd0ee1adca6c628d6656.tar.gz |
platform: stack-allocate anycast_mask path in _linktype_get_type()
-rw-r--r-- | src/platform/nm-linux-platform.c | 10 |
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; |