Skip to content

Commit fd1ffa4

Browse files
committed
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2: Fix erroneous assertions
2 parents 90318fb + 27f168c commit fd1ffa4

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

win32/codepage.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ __forceinline static wchar_t *php_win32_cp_to_w_int(const char* in, size_t in_le
6464
}
6565

6666
assert(ret ? tmp_len == ret_len : 1);
67-
assert(ret ? wcslen(ret) == ret_len - 1 : 1);
67+
assert(ret && !in_len ? wcslen(ret) == ret_len - 1 : 1);
6868

6969
ret[ret_len-1] = L'\0';
7070

@@ -103,7 +103,10 @@ PW32CP wchar_t *php_win32_cp_conv_ascii_to_w(const char* in, size_t in_len, size
103103
{/*{{{*/
104104
wchar_t *ret, *ret_idx;
105105
const char *idx = in, *end;
106-
106+
#if PHP_DEBUG
107+
size_t save_in_len = in_len;
108+
#endif
109+
107110
assert(in && in_len ? in[in_len] == '\0' : 1);
108111

109112
if (!in) {
@@ -195,7 +198,7 @@ PW32CP wchar_t *php_win32_cp_conv_ascii_to_w(const char* in, size_t in_len, size
195198

196199
ret[in_len] = L'\0';
197200

198-
assert(ret ? wcslen(ret) == in_len : 1);
201+
assert(ret && !save_in_len ? wcslen(ret) == in_len : 1);
199202

200203
if (PHP_WIN32_CP_IGNORE_LEN_P != out_len) {
201204
*out_len = in_len;
@@ -239,7 +242,7 @@ __forceinline static char *php_win32_cp_from_w_int(const wchar_t* in, size_t in_
239242
}
240243

241244
assert(target ? r == target_len : 1);
242-
assert(target ? strlen(target) == target_len - 1 : 1);
245+
assert(target && !in_len ? strlen(target) == target_len - 1 : 1);
243246

244247
target[target_len-1] = '\0';
245248

0 commit comments

Comments
 (0)