Browse Source

Add NULL-terminator the string passed to strtol.

This is actually expected by the function although it was apparently
working in GCC without the terminator, it breaks (at least some) clang
versions.

(cherry picked from commit 2f91e250f601e61e58fcb63b9bd72d29d7fc866b)
Fabio Alessandrelli 6 năm trước cách đây
mục cha
commit
2a837d525f
1 tập tin đã thay đổi với 1 bổ sung1 xóa
  1. 1 1
      core/ustring.cpp

+ 1 - 1
core/ustring.cpp

@@ -3297,7 +3297,7 @@ String String::http_unescape() const {
 			if ((ord1 >= '0' && ord1 <= '9') || (ord1 >= 'A' && ord1 <= 'Z')) {
 				CharType ord2 = ord_at(i + 2);
 				if ((ord2 >= '0' && ord2 <= '9') || (ord2 >= 'A' && ord2 <= 'Z')) {
-					char bytes[2] = { (char)ord1, (char)ord2 };
+					char bytes[3] = { (char)ord1, (char)ord2, 0 };
 					res += (char)strtol(bytes, NULL, 16);
 					i += 2;
 				}