Huw Davies (@huw) commented about dlls/nsiproxy.sys/ndis.c:
}
- if (!ret)
- {
update_if_table();while (&entry->entry != &if_list){if (entry->if_luid.Value == luid->Value){*unix_name = entry->if_unix_name;ret = TRUE;break;}entry = LIST_ENTRY(entry->entry.next, struct if_entry, entry);}- }
This is pretty fragile and assumes `update_if_table()` appends to the list - simply restart the loop again. Better yet, enclose the first loop in something like this: ```c do {} while(!updated++); ```