summaryrefslogtreecommitdiffstats
path: root/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/buffer.ml2
1 files changed, 2 insertions, 0 deletions
diff --git a/stdlib/buffer.ml b/stdlib/buffer.ml
index 088840981..9327aaefb 100644
--- a/stdlib/buffer.ml
+++ b/stdlib/buffer.ml
@@ -100,6 +100,8 @@ let add_buffer b bs =
add_substring b bs.buffer 0 bs.position
let add_channel b ic len =
+ if len < 0 || len > Sys.max_string_length then (* PR#5004 *)
+ invalid_arg "Buffer.add_channel";
if b.position + len > b.length then resize b len;
really_input ic b.buffer b.position len;
b.position <- b.position + len