store: Work around 'get-bytevector-n' bug that affects 'import-paths'.

Fixes <http://bugs.gnu.org/17591>.

* guix/store.scm (process-stderr) <%stderr-read>: Use
  'get-bytevector-n!' instead of 'get-bytevector-n'.
This commit is contained in:
Ludovic Courtès 2014-05-27 22:01:51 +02:00
parent 2a7050abf8
commit 5895f24443
1 changed files with 5 additions and 3 deletions

View File

@ -397,11 +397,13 @@ encoding conversion errors."
#f)
((= k %stderr-read)
;; Read a byte stream from USER-PORT.
;; Note: Avoid 'get-bytevector-n' to work around
;; <http://bugs.gnu.org/17591> in Guile up to 2.0.11.
(let* ((max-len (read-int p))
(data (get-bytevector-n user-port max-len))
(len (bytevector-length data)))
(data (make-bytevector max-len))
(len (get-bytevector-n! user-port data 0 max-len)))
(write-int len p)
(put-bytevector p data)
(put-bytevector p data 0 len)
(write-padding len p)
#f))
((= k %stderr-next)