From a0eaf0f74110dc46f9d36af0106035e724d915f9 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Sun, 11 Mar 2018 23:42:01 -0400 Subject: [PATCH] Fix undefined behavior. With ORCA/C 2.2, this code generates an infinite loop. (essentially, name2[i+1] = toupper(name2[i])) --- MakeLib.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/MakeLib.cc b/MakeLib.cc index 374435c..e8a0125 100644 --- a/MakeLib.cc +++ b/MakeLib.cc @@ -1718,8 +1718,10 @@ if (file) { while (f) { strcpy(name2, f->fName); i = 0; - while (name2[i]) - name2[i] = toupper(name2[i++]); + while (name2[i]) { + name2[i] = toupper(name2[i]); + ++i; + } if (! strcmp(name2, name)) return f->fFile; f = f->fNext;