staging: use relative path in sysroot_stage_dir()

A regression form cpio CVE-2021-38185 caused the tool to hang for paths
greater than 128 character long. It was reported here:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=992098

We were able to reliable reproduce this with dunfell, meta-freescale
recipe imx-boot

https://github.com/Freescale/meta-freescale/blob/dunfell/recipes-bsp/imx-mkimage/imx-boot_1.0.bb

Using relative path on the affected host fixes the issue as this is
always short, being in the same work dir. It would be harmless, and
useful to generally use the relative path for sysroot_stage_dir()

(From OE-Core rev: a1ec3154a53fd9e3f87a53f25113b7f90bcfb489)

Signed-off-by: Ahsan Hussain <ahsan_hussain@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ahsan Hussain
2022-01-31 13:55:48 +05:00
committed by Richard Purdie
parent 5bc518e81b
commit 8c18d70e3d

View File

@@ -49,9 +49,10 @@ sysroot_stage_dir() {
fi
mkdir -p "$dest"
rdest=$(realpath --relative-to="$src" "$dest")
(
cd $src
find . -print0 | cpio --null -pdlu $dest
find . -print0 | cpio --null -pdlu $rdest
)
}