Fix memory leak/Use BEGINS_WITH macro
The orignal proposed code had a memory leak when returning true. Furthermore I included the handy BEGINS_WITH macro of i3 which makes the code (IMHO) a lot more readable.
This commit is contained in:
parent
f45581f8d8
commit
ad3fac03c3
@ -53,16 +53,16 @@ static bool sysfs_devtype(char *dest, size_t n, const char *ifnam) {
|
||||
static bool is_virtual(const char *ifname) {
|
||||
char path[1024];
|
||||
char *target = NULL;
|
||||
const char virtual_template[] = "/sys/devices/virtual/";
|
||||
bool is_virtual = false;
|
||||
|
||||
snprintf(path, sizeof(path), "/sys/class/net/%s", ifname);
|
||||
if ((target = realpath(path, NULL))) {
|
||||
if (strncmp(virtual_template, target, strlen(virtual_template)) == 0)
|
||||
return true;
|
||||
if (BEGINS_WITH(target, "/sys/devices/virtual/"))
|
||||
is_virtual = true;
|
||||
}
|
||||
free(target);
|
||||
|
||||
return false;
|
||||
free(target);
|
||||
return is_virtual;
|
||||
}
|
||||
|
||||
static net_type_t iface_type(const char *ifname) {
|
||||
|
Loading…
Reference in New Issue
Block a user