From: Yu Watanabe Date: Mon, 10 Apr 2023 19:57:34 +0000 (+0900) Subject: find-esp: use path_prefix_root_cwd() X-Git-Tag: v254-rc1~769^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fb4d9bf47fcc647c3b43f0b61c6bcf0424397f03;p=thirdparty%2Fsystemd.git find-esp: use path_prefix_root_cwd() Unlikely, but even if find_esp() or friends called with unnormalized or relative 'root', let's make the result path normalized and absolute. Note, before 63105f33edad423691e2d53bf7071f99c83799ba, these functions returned an absolute and normalized path. But the commit made the result path simply concatenated with root. Follow-up for 63105f33edad423691e2d53bf7071f99c83799ba. --- diff --git a/src/shared/find-esp.c b/src/shared/find-esp.c index 0d45249d632..6a0002a2bdf 100644 --- a/src/shared/find-esp.c +++ b/src/shared/find-esp.c @@ -540,11 +540,9 @@ int find_esp_and_warn( return r; if (ret_path) { - char *q = path_join(empty_to_root(root), p); - if (!q) - return -ENOMEM; - - *ret_path = TAKE_PTR(q); + r = path_prefix_root_cwd(p, root, ret_path); + if (r < 0) + return r; } if (ret_part) *ret_part = part; @@ -861,11 +859,9 @@ int find_xbootldr_and_warn( return r; if (ret_path) { - char *q = path_join(empty_to_root(root), p); - if (!q) - return -ENOMEM; - - *ret_path = TAKE_PTR(q); + r = path_prefix_root_cwd(p, root, ret_path); + if (r < 0) + return r; } if (ret_uuid) *ret_uuid = uuid;