if (dev) {
syslog(LOG_DEBUG, "dev: unloaded %s", dev->name);
dev->stop();
+ free(dev);
dev = NULL;
}
if (handle) {
syslog(LOG_ERR, "dlopen: %s", dlerror());
return -1;
}
- fptr = (void (*)(struct dev *, const struct dev_dhcpcd *))dlsym(h, "dev_init");
+ fptr = (void (*)(struct dev *, const struct dev_dhcpcd *))
+ dlsym(h, "dev_init");
if (fptr == NULL) {
syslog(LOG_ERR, "dlsym: %s", dlerror());
dlclose(h);
if (r != -1)
break;
}
+ closedir(dp);
return r;
}