diff options
Diffstat (limited to 'stdlib/buffer.ml')
-rw-r--r-- | stdlib/buffer.ml | 2 |
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 |