aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-12-31 11:15:24 +0100
committerLudovic Courtès <ludo@gnu.org>2017-12-31 11:18:30 +0100
commit091191c3dcbfb9f01070d26bf15cb2c4dd07b1b5 (patch)
treef77c3bf5986dd80bd0adce92b9ad8726d30f5fed
parent1c27f72fc2770d68243dd95b7c05adc3b2b02ea4 (diff)
downloadguix-091191c3dcbfb9f01070d26bf15cb2c4dd07b1b5.tar
guix-091191c3dcbfb9f01070d26bf15cb2c4dd07b1b5.tar.gz
list-runtime-root: Fix off-by-one in 'strip-drop' call.
Fixes <https://bugs.gnu.org/29862>. Reported by Danny Milosavljevic <dannym@scratchpost.org>. * nix/scripts/list-runtime-roots.in (canonicalize-store-item): Define 'store' with a trailing "/". Have the 'string-prefix?' call match the 'string-drop' call.
-rw-r--r--nix/scripts/list-runtime-roots.in7
1 files changed, 4 insertions, 3 deletions
diff --git a/nix/scripts/list-runtime-roots.in b/nix/scripts/list-runtime-roots.in
index 48a07edf5f..5f2660fb5e 100644
--- a/nix/scripts/list-runtime-roots.in
+++ b/nix/scripts/list-runtime-roots.in
@@ -130,12 +130,13 @@ or the empty list."
(< (string->number a) (string->number b))))))
(define canonicalize-store-item
- (let ((prefix (+ 1 (string-length %store-directory))))
+ (let* ((store (string-append %store-directory "/"))
+ (prefix (string-length store)))
(lambda (file)
"Return #f if FILE is not a store item; otherwise, return the store file
name without any sub-directory components."
- (and (string-prefix? %store-directory file)
- (string-append %store-directory "/"
+ (and (string-prefix? store file)
+ (string-append store
(let ((base (string-drop file prefix)))
(match (string-index base #\/)
(#f base)