re #49 fixes LocalFree after advanced list

This commit is contained in:
Alberto Ortega 2016-06-11 18:41:27 +02:00
parent d13b9cb1d0
commit 8f84f98034
1 changed files with 6 additions and 4 deletions

View File

@ -153,6 +153,7 @@ int pafish_check_mac_vendor(char * mac_vendor) {
ret = GetAdaptersAddresses(AF_UNSPEC,0,0,0,&alist_size);
if(ret==ERROR_BUFFER_OVERFLOW) {
IP_ADAPTER_ADDRESSES* palist = (IP_ADAPTER_ADDRESSES*)LocalAlloc(LMEM_ZEROINIT,alist_size);
void * palist_free = palist;
if(palist) {
GetAdaptersAddresses(AF_UNSPEC,0,0,palist,&alist_size);
char mac[6]={0};
@ -160,13 +161,13 @@ int pafish_check_mac_vendor(char * mac_vendor) {
if (palist->PhysicalAddressLength==0x6){
memcpy(mac,palist->PhysicalAddress,0x6);
if (!memcmp(mac_vendor, mac, 3)) { /* First 3 bytes are the same */
LocalFree(palist);
LocalFree(palist_free);
return TRUE;
}
}
palist = palist->Next;
}
LocalFree(palist);
LocalFree(palist_free);
}
}
return FALSE;
@ -181,17 +182,18 @@ int pafish_check_adapter_name(char * name) {
ret = GetAdaptersAddresses(AF_UNSPEC, 0, 0, 0, &alist_size);
if (ret == ERROR_BUFFER_OVERFLOW) {
IP_ADAPTER_ADDRESSES *palist = (IP_ADAPTER_ADDRESSES*)LocalAlloc(LMEM_ZEROINIT, alist_size);
void * palist_free = palist;
if (palist) {
if (GetAdaptersAddresses(AF_UNSPEC, 0, 0, palist, &alist_size) == ERROR_SUCCESS) {
while (palist) {
if (wcsstr(palist->Description, aux)) {
LocalFree(palist);
LocalFree(palist_free);
return TRUE;
}
palist = palist->Next;
}
}
LocalFree(palist);
LocalFree(palist_free);
}
}
return FALSE;