summaryrefslogtreecommitdiff
path: root/win32/codepage.c
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2019-05-09 16:57:23 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2019-05-09 16:57:23 +0200
commitbcefc345bd0cf494f42b8409d3c01cb0060aee61 (patch)
tree873b249f3ead2ada55761047c67395610be119cb /win32/codepage.c
parent167d4bdb62474fccf5989daa5c901c73bedced54 (diff)
parentd0d290d4aa9b0c16759b6aa22e7e5bf1c944a892 (diff)
downloadphp-git-bcefc345bd0cf494f42b8409d3c01cb0060aee61.tar.gz
Merge branch 'PHP-7.4'
* PHP-7.4: Fix erroneous assertions
Diffstat (limited to 'win32/codepage.c')
-rw-r--r--win32/codepage.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/win32/codepage.c b/win32/codepage.c
index cdec68b8a7..12c3afc531 100644
--- a/win32/codepage.c
+++ b/win32/codepage.c
@@ -66,7 +66,7 @@ __forceinline static wchar_t *php_win32_cp_to_w_int(const char* in, size_t in_le
}
assert(ret ? tmp_len == ret_len : 1);
- assert(ret ? wcslen(ret) == ret_len - 1 : 1);
+ assert(ret && !in_len ? wcslen(ret) == ret_len - 1 : 1);
ret[ret_len-1] = L'\0';
@@ -107,6 +107,10 @@ PW32CP wchar_t *php_win32_cp_conv_ascii_to_w(const char* in, size_t in_len, size
const char *idx = in, *end;
char ch_err = 0;
+#if PHP_DEBUG
+ size_t save_in_len = in_len;
+#endif
+
assert(in && in_len ? in[in_len] == '\0' : 1);
if (!in) {
@@ -195,7 +199,7 @@ PW32CP wchar_t *php_win32_cp_conv_ascii_to_w(const char* in, size_t in_len, size
ret[in_len] = L'\0';
- assert(ret ? wcslen(ret) == in_len : 1);
+ assert(ret && !save_in_len ? wcslen(ret) == in_len : 1);
if (PHP_WIN32_CP_IGNORE_LEN_P != out_len) {
*out_len = in_len;
@@ -239,7 +243,7 @@ __forceinline static char *php_win32_cp_from_w_int(const wchar_t* in, size_t in_
}
assert(target ? r == target_len : 1);
- assert(target ? strlen(target) == target_len - 1 : 1);
+ assert(target && !in_len ? strlen(target) == target_len - 1 : 1);
target[target_len-1] = '\0';