~ruther/guix-local

8a2105078b5845e31768da06b360676352b1f3e9 — Ludovic Courtès 8 years ago 49f9d7f
substitute: Validate substitute URLs.

Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>
at <https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00548.html>.

* guix/scripts/substitute.scm (validate-uri): New procedure.
(guix-substitute): Use it.
1 files changed, 7 insertions(+), 0 deletions(-)

M guix/scripts/substitute.scm
M guix/scripts/substitute.scm => guix/scripts/substitute.scm +7 -0
@@ 980,6 980,10 @@ default value."
                 (and number (max 20 (- number 1))))))
      80))

(define (validate-uri uri)
  (unless (string->uri uri)
    (leave (_ "~a: invalid URI~%") uri)))

(define (guix-substitute . args)
  "Implement the build daemon's substituter protocol."
  (mkdir-p %narinfo-cache-directory)


@@ 1001,6 1005,9 @@ default value."
  (newline)
  (force-output (current-output-port))

  ;; Sanity-check %CACHE-URLS so we can provide a meaningful error message.
  (for-each validate-uri %cache-urls)

  ;; Attempt to install the client's locale, mostly so that messages are
  ;; suitably translated.
  (match (or (find-daemon-option "untrusted-locale")