diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-01-18 22:19:04 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-01-18 22:19:04 +0100 |
commit | 71c1d5280cdeba90cfd1230f5f376a7e89b93694 (patch) | |
tree | 1e540f5adb3cf6b862d0e02856ae99f781b1703c | |
parent | aa27b56083f1b4f05db11bfb160860ed6af34e2b (diff) |
nar: Read archive signatures as Latin-1 strings.
Fixes <http://bugs.gnu.org/19610>.
Reported by Mark H Weaver <mhw@netris.org>.
* guix/nar.scm (restore-one-item): Use 'read-latin1-string' to read the
signature.
-rw-r--r-- | guix/nar.scm | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/guix/nar.scm b/guix/nar.scm index bab727e65d..43e5210752 100644 --- a/guix/nar.scm +++ b/guix/nar.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. @@ -211,7 +211,9 @@ s-expression")) (_ "importing file or directory '~a'...~%") file) - (let ((sig (and has-sig? (read-string port)))) + ;; The signature may contain characters that are meant to be + ;; interpreted as bytes in a 'char *', so read them as a ISO-8859-1. + (let ((sig (and has-sig? (read-latin1-string port)))) (when verify-signature? (if sig (begin |