efi_loader: allow concatenation with contained end node
Allow appending a device-path to a device-path that contains an end node
as separator. We need this feature for creating boot options specifying
kernel, initrd, and dtb.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff --git a/cmd/eficonfig.c b/cmd/eficonfig.c
index 4164cb4..7bb92e5 100644
--- a/cmd/eficonfig.c
+++ b/cmd/eficonfig.c
@@ -530,7 +530,7 @@
dp = efi_dp_shorten(dp_volume);
if (!dp)
dp = dp_volume;
- dp = efi_dp_concat(dp, &fp->dp, false);
+ dp = efi_dp_concat(dp, &fp->dp, 0);
free(buf);
return dp;
@@ -1484,7 +1484,7 @@
goto out;
}
initrd_dp = efi_dp_concat((const struct efi_device_path *)&id_dp,
- dp, false);
+ dp, 0);
efi_free_pool(dp);
}
@@ -1495,7 +1495,7 @@
}
final_dp_size = efi_dp_size(dp) + sizeof(END);
if (initrd_dp) {
- final_dp = efi_dp_concat(dp, initrd_dp, true);
+ final_dp = efi_dp_concat(dp, initrd_dp, 1);
final_dp_size += efi_dp_size(initrd_dp) + sizeof(END);
} else {
final_dp = efi_dp_dup(dp);