From 0f7dcbc8ca255880451ff309e6aef87b387d7e65 Mon Sep 17 00:00:00 2001
From: foreman
Date: Fri, 15 Dec 2017 15:37:57 -0500
Subject: [PATCH] P4 to Git Change 1495208 by gandryey@gera-w8 on 2017/12/15
15:33:48
SWDEV-135647 - Runtime should not assert on invalid printf
- Replace the asserts for invalid printf index with an error.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprintf.cpp#45 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprintf.cpp#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprintf.cpp#9 edit
[ROCm/clr commit: 1a3de160ecd18ad5710236788ab5f0cd25d46c48]
---
projects/clr/rocclr/runtime/device/gpu/gpuprintf.cpp | 5 ++++-
projects/clr/rocclr/runtime/device/pal/palprintf.cpp | 5 ++++-
projects/clr/rocclr/runtime/device/rocm/rocprintf.cpp | 5 ++++-
3 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/projects/clr/rocclr/runtime/device/gpu/gpuprintf.cpp b/projects/clr/rocclr/runtime/device/gpu/gpuprintf.cpp
index 58120a4002..3ae7b7c479 100644
--- a/projects/clr/rocclr/runtime/device/gpu/gpuprintf.cpp
+++ b/projects/clr/rocclr/runtime/device/gpu/gpuprintf.cpp
@@ -608,7 +608,10 @@ bool PrintfDbgHSA::output(VirtualGPU& gpu, bool printfEnabled,
// parse the debug buffer
while (sbt < copySize) {
- assert(((*dbgBufferPtr) < printfInfo.size()) && "Cound't find the reported PrintfID!");
+ if (*dbgBufferPtr >= printfInfo.size()) {
+ LogError("Couldn't find the reported PrintfID!");
+ return false;
+ }
const PrintfInfo& info = printfInfo[(*dbgBufferPtr)];
sb += sizeof(uint32_t);
for (ita = info.arguments_.begin(); ita != info.arguments_.end(); ++ita) {
diff --git a/projects/clr/rocclr/runtime/device/pal/palprintf.cpp b/projects/clr/rocclr/runtime/device/pal/palprintf.cpp
index b8933e769f..8f027ae847 100644
--- a/projects/clr/rocclr/runtime/device/pal/palprintf.cpp
+++ b/projects/clr/rocclr/runtime/device/pal/palprintf.cpp
@@ -604,7 +604,10 @@ bool PrintfDbgHSA::output(VirtualGPU& gpu, bool printfEnabled,
// parse the debug buffer
while (sbt < copySize) {
- assert(((*dbgBufferPtr) < printfInfo.size()) && "Cound't find the reported PrintfID!");
+ if (*dbgBufferPtr >= printfInfo.size()) {
+ LogError("Couldn't find the reported PrintfID!");
+ return false;
+ }
const PrintfInfo& info = printfInfo[(*dbgBufferPtr)];
sb += sizeof(uint32_t);
for (ita = info.arguments_.begin(); ita != info.arguments_.end(); ++ita) {
diff --git a/projects/clr/rocclr/runtime/device/rocm/rocprintf.cpp b/projects/clr/rocclr/runtime/device/rocm/rocprintf.cpp
index fcf7dfb2e8..82a86d8059 100644
--- a/projects/clr/rocclr/runtime/device/rocm/rocprintf.cpp
+++ b/projects/clr/rocclr/runtime/device/rocm/rocprintf.cpp
@@ -421,7 +421,10 @@ bool PrintfDbg::output(VirtualGPU& gpu, bool printfEnabled,
// parse the debug buffer
while (sbt < offsetSize) {
- assert(((*dbgBufferPtr) < printfInfo.size()) && "Cound't find the reported PrintfID!");
+ if (*dbgBufferPtr >= printfInfo.size()) {
+ LogError("Couldn't find the reported PrintfID!");
+ return false;
+ }
const PrintfInfo& info = printfInfo[(*dbgBufferPtr)];
sb += sizeof(uint32_t);
for (ita = info.arguments_.begin(); ita != info.arguments_.end(); ++ita) {