summaryrefslogtreecommitdiffstats
path: root/otherlibs
diff options
context:
space:
mode:
Diffstat (limited to 'otherlibs')
-rw-r--r--otherlibs/threads/marshal.ml6
-rw-r--r--otherlibs/threads/pervasives.ml6
-rw-r--r--otherlibs/threads/unix.ml12
-rw-r--r--otherlibs/unix/unix.ml12
-rw-r--r--otherlibs/win32unix/unix.ml12
5 files changed, 24 insertions, 24 deletions
diff --git a/otherlibs/threads/marshal.ml b/otherlibs/threads/marshal.ml
index 3b3a4cfa2..7be4d04dd 100644
--- a/otherlibs/threads/marshal.ml
+++ b/otherlibs/threads/marshal.ml
@@ -39,17 +39,17 @@ external data_size_unsafe: string -> int -> int = "marshal_data_size"
let header_size = 20
let data_size buff ofs =
- if ofs < 0 || ofs + header_size > String.length buff
+ if ofs < 0 || ofs > String.length buff - header_size
then invalid_arg "Marshal.data_size"
else data_size_unsafe buff ofs
let total_size buff ofs = header_size + data_size buff ofs
let from_string buff ofs =
- if ofs < 0 || ofs + header_size > String.length buff
+ if ofs < 0 || ofs > String.length buff - header_size
then invalid_arg "Marshal.from_size"
else begin
let len = data_size_unsafe buff ofs in
- if ofs + header_size + len > String.length buff
+ if ofs > String.length buff - (header_size + len)
then invalid_arg "Marshal.from_string"
else from_string_unsafe buff ofs
end
diff --git a/otherlibs/threads/pervasives.ml b/otherlibs/threads/pervasives.ml
index 2e342dfb0..80c06b120 100644
--- a/otherlibs/threads/pervasives.ml
+++ b/otherlibs/threads/pervasives.ml
@@ -308,7 +308,7 @@ let output_string oc s =
unsafe_output oc s 0 (string_length s)
let output oc s ofs len =
- if ofs < 0 || len < 0 || ofs + len > string_length s
+ if ofs < 0 || len < 0 || ofs > string_length s - len
then invalid_arg "output"
else unsafe_output oc s ofs len
@@ -373,7 +373,7 @@ let rec unsafe_input ic s ofs len =
wait_inchan ic; unsafe_input ic s ofs len
let input ic s ofs len =
- if ofs < 0 || len < 0 || ofs + len > string_length s
+ if ofs < 0 || len < 0 || ofs > string_length s - len
then invalid_arg "input"
else unsafe_input ic s ofs len
@@ -388,7 +388,7 @@ let rec unsafe_really_input ic s ofs len =
end
let really_input ic s ofs len =
- if ofs < 0 || len < 0 || ofs + len > string_length s
+ if ofs < 0 || len < 0 || ofs > string_length s - len
then invalid_arg "really_input"
else unsafe_really_input ic s ofs len
diff --git a/otherlibs/threads/unix.ml b/otherlibs/threads/unix.ml
index c32964585..ea8a44c8f 100644
--- a/otherlibs/threads/unix.ml
+++ b/otherlibs/threads/unix.ml
@@ -200,7 +200,7 @@ external unsafe_write : file_descr -> string -> int -> int -> int = "unix_write"
let rec read fd buf ofs len =
try
- if len < 0 or ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.read"
else unsafe_read fd buf ofs len
with Unix_error((EAGAIN | EWOULDBLOCK), _, _) ->
@@ -208,7 +208,7 @@ let rec read fd buf ofs len =
let rec write fd buf ofs len =
try
- if len < 0 or ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.write"
else unsafe_write fd buf ofs len
with Unix_error((EAGAIN | EWOULDBLOCK), _, _) ->
@@ -604,7 +604,7 @@ external unsafe_sendto :
let rec recv fd buf ofs len flags =
try
- if len < 0 or ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.recv"
else unsafe_recv fd buf ofs len flags
with Unix_error((EAGAIN | EWOULDBLOCK), _, _) ->
@@ -612,7 +612,7 @@ let rec recv fd buf ofs len flags =
let rec recvfrom fd buf ofs len flags =
try
- if len < 0 or ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.recvfrom"
else unsafe_recvfrom fd buf ofs len flags
with Unix_error((EAGAIN | EWOULDBLOCK), _, _) ->
@@ -621,7 +621,7 @@ let rec recvfrom fd buf ofs len flags =
let rec send fd buf ofs len flags =
try
- if len < 0 or ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.send"
else unsafe_send fd buf ofs len flags
with Unix_error((EAGAIN | EWOULDBLOCK), _, _) ->
@@ -630,7 +630,7 @@ let rec send fd buf ofs len flags =
let rec sendto fd buf ofs len flags addr =
try
- if len < 0 or ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.sendto"
else unsafe_sendto fd buf ofs len flags addr
with Unix_error((EAGAIN | EWOULDBLOCK), _, _) ->
diff --git a/otherlibs/unix/unix.ml b/otherlibs/unix/unix.ml
index 4ec83890a..daa24e61e 100644
--- a/otherlibs/unix/unix.ml
+++ b/otherlibs/unix/unix.ml
@@ -163,11 +163,11 @@ external unsafe_read : file_descr -> string -> int -> int -> int = "unix_read"
external unsafe_write : file_descr -> string -> int -> int -> int = "unix_write"
let read fd buf ofs len =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.read"
else unsafe_read fd buf ofs len
let write fd buf ofs len =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.write"
else unsafe_write fd buf ofs len
@@ -456,19 +456,19 @@ external unsafe_sendto :
= "unix_sendto" "unix_sendto_native"
let recv fd buf ofs len flags =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.recv"
else unsafe_recv fd buf ofs len flags
let recvfrom fd buf ofs len flags =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.recvfrom"
else unsafe_recvfrom fd buf ofs len flags
let send fd buf ofs len flags =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.send"
else unsafe_send fd buf ofs len flags
let sendto fd buf ofs len flags addr =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.sendto"
else unsafe_sendto fd buf ofs len flags addr
diff --git a/otherlibs/win32unix/unix.ml b/otherlibs/win32unix/unix.ml
index 5231507e1..5bec474e2 100644
--- a/otherlibs/win32unix/unix.ml
+++ b/otherlibs/win32unix/unix.ml
@@ -184,11 +184,11 @@ external unsafe_write : file_descr -> string -> int -> int -> int
= "unix_write"
let read fd buf ofs len =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.read"
else unsafe_read fd buf ofs len
let write fd buf ofs len =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.write"
else unsafe_write fd buf ofs len
@@ -549,19 +549,19 @@ external unsafe_sendto :
= "unix_sendto" "unix_sendto_native"
let recv fd buf ofs len flags =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.recv"
else unsafe_recv fd buf ofs len flags
let recvfrom fd buf ofs len flags =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.recvfrom"
else unsafe_recvfrom fd buf ofs len flags
let send fd buf ofs len flags =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.send"
else unsafe_send fd buf ofs len flags
let sendto fd buf ofs len flags addr =
- if len < 0 || ofs + len > String.length buf
+ if ofs < 0 || len < 0 || ofs > String.length buf - len
then invalid_arg "Unix.sendto"
else unsafe_sendto fd buf ofs len flags addr