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

View File

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