From ea58703ece24a2fe13f4c8d9efcae4b6253b2ad1 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 --- src/events.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/events.c b/src/events.c index b65ea96e71..373018aa29 100644 --- a/src/events.c +++ b/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;