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; }