From 6e9ce3a25b438a94ad870ba85dd8c9bf8a28e043 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Tue, 6 Jun 2023 03:36:45 +0200 Subject: [PATCH] ctfw.c: Avoid trailing forward slash Otherwise, this would generate strings such as "directory//resource" if dirpath contained a trailing slash, which could be problematic for users relying on ctfw. --- cftw.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cftw.c b/cftw.c index c4986fd..d11cb87 100644 --- a/cftw.c +++ b/cftw.c @@ -29,12 +29,13 @@ int cftw(const char *const dirpath, int (*const fn)(const char *, if (!strcmp(path, ".") || !strcmp(path, "..")) continue; + const char *const sep = dirpath[strlen(dirpath) - 1] == '/' ? "" : "/"; struct stat sb; struct dynstr d; dynstr_init(&d); - if (dynstr_append(&d, "%s/%s", dirpath, path)) + if (dynstr_append(&d, "%s%s%s", dirpath, sep, path)) { fprintf(stderr, "%s: dynstr_append failed\n", __func__); return -1;