Blob Blame History Raw
diff --git a/libbridge/libbridge_devif.c b/libbridge/libbridge_devif.c
diff --git a/libbridge/libbridge_init.c b/libbridge/libbridge_init.c
index e2eab77..38b8a18 100644
--- a/libbridge/libbridge_init.c
+++ b/libbridge/libbridge_init.c
@@ -186,12 +186,15 @@ int br_foreach_port(const char *brname,
 	struct dirent **namelist;
 	char path[SYSFS_PATH_MAX];
 
-	snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/brport", brname);
+	snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/brif", brname);
 	count = scandir(path, &namelist, 0, alphasort);
 	if (count < 0)
 		return old_foreach_port(brname, iterator, arg);
 
 	for (i = 0; i < count; i++) {
+		if (!strcmp(namelist[i]->d_name, ".") ||
+		    !strcmp(namelist[i]->d_name, ".."))
+			continue;
 		if (iterator(brname, namelist[i]->d_name, arg))
 			break;
 	}