summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2023-07-06 18:07:27 +0200
committerMarc Mutz <marc.mutz@qt.io>2023-08-07 06:20:53 +0000
commit67333aed5fb144d15c3bbde9719282cd3f34eda7 (patch)
treec828587e3bcc027dc0862478dbf353f2b6e7cab8
parent34237849238636aab7f75872ff741b59c1dfb1ab (diff)
Fix UB (signed char passed to <cctype> function)
Passing char to a <cctype> function is UB for characters that are outside the range [0...255, EOF]. You have to cast chars to uchar so the implicit conversion to int does not produce negative values. Amends a6ffce09ce6d4fd39fbb50eb58f7b5d1027f4d60. Change-Id: I597ee3ff87d38c40dbdf794ee07d302da26f520e Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit cf084d958c1d795fbdc06b6a377ab61d68e0960a) Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r--src/render/shadergraph/qshadergenerator.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/render/shadergraph/qshadergenerator.cpp b/src/render/shadergraph/qshadergenerator.cpp
index 05e578c78..7ca29b03b 100644
--- a/src/render/shadergraph/qshadergenerator.cpp
+++ b/src/render/shadergraph/qshadergenerator.cpp
@@ -616,7 +616,7 @@ QByteArray QShaderGenerator::createShaderCode(const QStringList &enabledLayers)
int end = begin + 1;
char endChar = line.at(end);
const int size = line.size();
- while (end < size && (std::isalnum(endChar) || endChar == '_')) {
+ while (end < size && (std::isalnum(uchar(endChar)) || endChar == '_')) {
++end;
endChar = line.at(end);
}