Fixed incorrect compare, allocation of profile_records and improper initialization of length.
diff --git a/MagickCore/opencl.c b/MagickCore/opencl.c
index d9de31e..7ff1cf0 100644
--- a/MagickCore/opencl.c
+++ b/MagickCore/opencl.c
@@ -1764,7 +1764,7 @@
}
if (length != (size_t *) NULL)
{
- length=0;
+ *length=0;
while (device->profile_records[*length] != (KernelProfileRecord) NULL)
*length=*length+1;
}
@@ -2370,7 +2370,7 @@
{
while (device->profile_records[i] != ((KernelProfileRecord) NULL))
{
- if (LocaleCompare(device->profile_records[i]->kernel_name,name))
+ if (LocaleCompare(device->profile_records[i]->kernel_name,name) == 0)
{
profile_record=device->profile_records[i];
break;
@@ -2383,7 +2383,8 @@
profile_record=AcquireMagickMemory(sizeof(*profile_record));
(void) ResetMagickMemory(profile_record,0,sizeof(*profile_record));
profile_record->kernel_name=AcquireString(name);
- device->profile_records=ResizeMagickMemory(device->profile_records,i+2);
+ device->profile_records=ResizeMagickMemory(device->profile_records,(i+2)*
+ sizeof(KernelProfileRecord));
device->profile_records[i]=profile_record;
device->profile_records[i+1]=(KernelProfileRecord) NULL;
}