diff options
author | Marc Mutz <marc.mutz@qt.io> | 2023-07-06 18:07:27 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2023-08-07 06:20:53 +0000 |
commit | 67333aed5fb144d15c3bbde9719282cd3f34eda7 (patch) | |
tree | c828587e3bcc027dc0862478dbf353f2b6e7cab8 | |
parent | 34237849238636aab7f75872ff741b59c1dfb1ab (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.cpp | 2 |
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); } |