From ced5298a40faf8250759c34c13c8de0f62924d19 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Thu, 14 Apr 2022 08:34:50 +0200 Subject: init/fs: fix `fs_dir_inject` the loop wasn't bounder, so was copying garbage - including multiple null bytes also, the trailing slash was appended even if the injected path didn't have one --- src/init/fs/misc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/init/fs/misc.c') diff --git a/src/init/fs/misc.c b/src/init/fs/misc.c index ddb230f..f140910 100644 --- a/src/init/fs/misc.c +++ b/src/init/fs/misc.c @@ -149,10 +149,11 @@ void fs_dir_inject(const char *path) { struct fs_dir_handle h = handles[res.id]; int out_len = 0; - while (h.inject[out_len] != '/') + while (h.inject[out_len] && h.inject[out_len] != '/') + out_len++; + if (h.inject[out_len] == '/') out_len++; memcpy(buf, h.inject, out_len); - buf[out_len++] = '/'; buf[out_len++] = '\0'; if (h.delegate >= 0) { -- cgit v1.2.3