supermin/0004-Use-open_process_full-in-compressed-file-reading.patch

38 lines
1.3 KiB
Diff
Raw Normal View History

2014-10-07 13:27:35 +00:00
From 68bc5e82e4892f981b1d5409ec217518749c4b61 Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Wed, 17 Sep 2014 12:59:54 +0200
Subject: [PATCH] Use open_process_full in compressed file reading
Since only few bytes of the compressed file are read, closing the stdout
of the process will cause it to complain about that.
Switch to open_process_full instead of open_process_in, so we can close
also stderr and avoid that harmless error message.
---
src/build.ml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/build.ml b/src/build.ml
index 7011731..500ce33 100644
--- a/src/build.ml
+++ b/src/build.ml
@@ -322,13 +322,13 @@ and get_file_content file buf len =
and get_compressed_file_content zcat file =
let cmd = sprintf "%s %s" zcat (quote file) in
- let chan = open_process_in cmd in
+ let chan_out, chan_in, chan_err = open_process_full cmd [||] in
let buf = String.create 512 in
- let len = input chan buf 0 (String.length buf) in
+ let len = input chan_out buf 0 (String.length buf) in
(* We're expecting the subprocess to fail because we close the pipe
* early, so:
*)
- ignore (close_process_in chan);
+ ignore (Unix.close_process_full (chan_out, chan_in, chan_err));
get_file_content file buf len
--
1.9.3