From 2fe4ad9d9b0312927dbdea344dfaadcc42676365 Mon Sep 17 00:00:00 2001 From: Felix Kuehling Date: Wed, 10 May 2017 18:16:31 -0400 Subject: [PATCH] Fix uninitialized memory bug in hsaKmtWaitOnMultipleEvents Use calloc to allocate event data. Otherwise random data may be filled in for events that haven't actually signalled. This could trigger the VM fault handler in the Runtime when no VM fault actually happened and lead to intermittent HSA conformance test failures. Change-Id: Icf702970e73a485b50633703c1b164f87fbb8606 Signed-off-by: Felix Kuehling [ROCm/ROCR-Runtime commit: ea58703ece24a2fe13f4c8d9efcae4b6253b2ad1] --- projects/rocr-runtime/src/events.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/rocr-runtime/src/events.c b/projects/rocr-runtime/src/events.c index b65ea96e71..373018aa29 100644 --- a/projects/rocr-runtime/src/events.c +++ b/projects/rocr-runtime/src/events.c @@ -255,7 +255,7 @@ hsaKmtWaitOnMultipleEvents( if (!Events) return HSAKMT_STATUS_INVALID_HANDLE; - struct kfd_event_data *event_data = malloc(NumEvents * sizeof(struct kfd_event_data)); + struct kfd_event_data *event_data = calloc(NumEvents, sizeof(struct kfd_event_data)); for (HSAuint32 i = 0; i < NumEvents; i++) { event_data[i].event_id = Events[i]->EventId; event_data[i].kfd_event_data_ext = (uint64_t)(uintptr_t)NULL;