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


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@358181 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/runtime/src/kmp_settings.cpp b/runtime/src/kmp_settings.cpp
index 0e11fbf..70817d9 100644
--- a/runtime/src/kmp_settings.cpp
+++ b/runtime/src/kmp_settings.cpp
@@ -4462,10 +4462,10 @@
   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) {