15 lines
870 B
Diff
15 lines
870 B
Diff
diff -up qt-everywhere-opensource-src-4.8.7/src/gui/image/qxbmhandler.cpp.me qt-everywhere-opensource-src-4.8.7/src/gui/image/qxbmhandler.cpp
|
|
--- qt-everywhere-opensource-src-4.8.7/src/gui/image/qxbmhandler.cpp.me 2020-08-13 11:20:45.943402169 +0200
|
|
+++ qt-everywhere-opensource-src-4.8.7/src/gui/image/qxbmhandler.cpp 2020-08-13 11:21:26.025976881 +0200
|
|
@@ -154,7 +154,9 @@ static bool read_xbm_body(QIODevice *dev
|
|
w = (w+7)/8; // byte width
|
|
|
|
while (y < h) { // for all encoded bytes...
|
|
- if (p) { // p = "0x.."
|
|
+ if (p && p < (buf + readBytes - 3)) { // p = "0x.."
|
|
+ if (!isxdigit(p[2]) || !isxdigit(p[3]))
|
|
+ return false;
|
|
*b++ = hex2byte(p+2);
|
|
p += 2;
|
|
if (++x == w && ++y < h) {
|