int chunks; /* complete chunks! */
int restlen;
int charsize = sizeof(char);
- int out_len;
+ float out_len;
if (str_type == IS_UNICODE) {
charsize = sizeof(UChar);
chunks = srclen / chunklen;
restlen = srclen - chunks * chunklen; /* srclen % chunklen */
- out_len = (srclen + (chunks + 1) * endlen + 1);
+ out_len = chunks + 1;
+ out_len *= endlen;
+ out_len += srclen + 1;
if ((out_len > INT_MAX || out_len <= 0) || ((out_len * charsize) > INT_MAX || (out_len * charsize) <= 0)) {
return NULL;
}
- dest = safe_emalloc(out_len, charsize, 0);
+ dest = safe_emalloc((int)out_len, charsize, 0);
for (p = src, q = dest; p < (src + charsize * (srclen - chunklen + 1)); ) {
memcpy(q, p, chunklen * charsize);
$c=str_repeat("B", 65535);
var_dump(chunk_split($a,$b,$c));
+$a=str_repeat("B", 65536);
+$b=1;
+$c=str_repeat("B", 65536);
+var_dump(chunk_split($a,$b,$c));
+
+
?>
--EXPECT--
a-b-c-
test|end
bool(false)
+bool(false)