Fixed some more memory bugs in ACPI

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12432 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Nathan Whitehorn 2005-04-18 00:42:47 +00:00
parent 6843026324
commit 37c35f77a4

View File

@ -170,16 +170,18 @@ static ACPI_STATUS get_device_by_hid_callback(ACPI_HANDLE object, UINT32 depth,
ACPI_STATUS result;
ACPI_BUFFER buffer;
uint32 *counter = (uint32 *)(context);
buffer.Length = 255;
buffer.Pointer = malloc(255);
*return_val = NULL;
if (counter[0] == counter[1]) {
buffer.Length = 254;
buffer.Pointer = malloc(255);
result = AcpiGetName(object,ACPI_FULL_PATHNAME,&buffer);
if (result != AE_OK)
return result;
if (result != AE_OK) {
free(buffer.Pointer);
return AE_CTRL_TERMINATE;
}
((char*)(buffer.Pointer))[buffer.Length] = '\0';
*return_val = buffer.Pointer;
@ -193,7 +195,7 @@ static ACPI_STATUS get_device_by_hid_callback(ACPI_HANDLE object, UINT32 depth,
status_t get_device (const char *hid, uint32 index, char *result) {
ACPI_STATUS status;
uint32 counter[2] = {index,0};
char *result2;
char *result2 = NULL;
status = AcpiGetDevices((char *)hid,&get_device_by_hid_callback,counter,&result2);
if ((status != AE_OK) || (result2 == NULL))