diff options
Diffstat (limited to 'src/nm-dbus-net.c')
-rw-r--r-- | src/nm-dbus-net.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/nm-dbus-net.c b/src/nm-dbus-net.c index 623b50f8fc..ba798a5fc4 100644 --- a/src/nm-dbus-net.c +++ b/src/nm-dbus-net.c @@ -52,14 +52,21 @@ static NMAccessPoint *nm_dbus_get_ap_from_object_path (const char *path, NMDevic while ((ap = nm_ap_list_iter_next (iter))) { + int len; + snprintf (compare_path, 100, "%s/%s/Networks/%s", NM_DBUS_PATH_DEVICES, nm_device_get_iface (dev), nm_ap_get_essid (ap)); escaped_compare_path = nm_dbus_escape_object_path (compare_path); - if (strncmp (path, escaped_compare_path, - strlen (escaped_compare_path)) == 0) + + len = strlen(escaped_compare_path); + if (strncmp (path, escaped_compare_path, len) == 0) { - g_free (escaped_compare_path); - break; + /* Differentiate between 'foo' and 'foo-a' */ + if (path[len] == '\0' || path[len] == '/') + { + g_free (escaped_compare_path); + break; + } } g_free (escaped_compare_path); } |