From dde0aa13213b1baad367c5d5f419010956ad2347 Mon Sep 17 00:00:00 2001 From: Pierre-Marie Pédrot Date: Sun, 24 Nov 2013 00:59:41 +0100 Subject: Hardening the reading function of vo files. --- lib/system.ml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/system.ml b/lib/system.ml index 28af1ee40f..015124e5bc 100644 --- a/lib/system.ml +++ b/lib/system.ml @@ -134,10 +134,13 @@ let raw_extern_intern magic = output_binary_int channel magic; filename, channel and intern_state filename = - let channel = open_in_bin filename in - if not (Int.equal (input_binary_int channel) magic) then - raise (Bad_magic_number filename); - channel + try + let channel = open_in_bin filename in + if not (Int.equal (input_binary_int channel) magic) then + raise (Bad_magic_number filename); + channel + with End_of_file | Failure _ | Sys_error _ -> + error_corrupted filename in (extern_state,intern_state) -- cgit v1.2.3