From c5c7a29d69e653911fc390fbf84fe09921ba93f3 Mon Sep 17 00:00:00 2001 From: Demi Marie Obenour Date: Wed, 8 Oct 2025 14:28:36 -0400 Subject: [PATCH] qubes-fs-tree-check: Fix wrong error message for empty path This should have a different error message, but due to an off-by-one it was never generated. Fixes QubesOS/qubes-issues#10309 --- qubes-rpc/qubes-fs-tree-check.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qubes-rpc/qubes-fs-tree-check.c b/qubes-rpc/qubes-fs-tree-check.c index 6c8e790b..8e8432fe 100644 --- a/qubes-rpc/qubes-fs-tree-check.c +++ b/qubes-rpc/qubes-fs-tree-check.c @@ -271,13 +271,14 @@ int main(int argc, char **argv) bool bad = false; unsigned long long size = 0; for (int i = optind; i < argc; ++i) { - size_t len = strlen(argv[i]) + 1; - if (len < 4 && memcmp("..", argv[i], len - 1) == 0) { + size_t len = strlen(argv[i]); + if (len < 3 && memcmp("..", argv[i], len) == 0) { if (len == 0) errx(1, "Empty string (passed as argument %d) is not a valid path", i); else errx(1, "Argument %d is \"%s\", which is not allowed. Try operating from the parent directory.", i, argv[i]); } + len++; char *escaped = simple_strvis(argv[i]); char *dup1 = malloc(len), *dup2 = malloc(len); if (dup1 == NULL || dup2 == NULL)