From 705384be9741cec657512b5c7e9dc5b1e0621d72 Mon Sep 17 00:00:00 2001 From: Andrey Churbanov Date: Thu, 11 Apr 2019 15:03:44 +0000 Subject: [PATCH] Fixed possible out of bound array access. The check of index value moved to before the write to the array. Differential Revision: https://reviews.llvm.org/D60471 llvm-svn: 358181 --- openmp/runtime/src/kmp_settings.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmp/runtime/src/kmp_settings.cpp b/openmp/runtime/src/kmp_settings.cpp index 0e11fbf528d1..70817d9475e8 100644 --- a/openmp/runtime/src/kmp_settings.cpp +++ b/openmp/runtime/src/kmp_settings.cpp @@ -4462,10 +4462,10 @@ static void __kmp_stg_parse_hw_subset(char const *name, char const *value, pos = input; components[level++] = pos; while ((pos = strchr(pos, ','))) { + if (level >= MAX_T_LEVEL) + goto err; // too many components provided *pos = '\0'; // modify input and avoid more copying components[level++] = ++pos; // expect something after "," - if (level > MAX_T_LEVEL) - goto err; // too many components provided } // Check each component for (int i = 0; i < level; ++i) {