]> code.ossystems Code Review - openembedded-core.git/commitdiff
staging: use relative path in sysroot_stage_dir()
authorAhsan Hussain <ahsan_hussain@mentor.com>
Mon, 31 Jan 2022 08:55:48 +0000 (13:55 +0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 12 Feb 2022 17:05:30 +0000 (17:05 +0000)
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()

Signed-off-by: Ahsan Hussain <ahsan_hussain@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/staging.bbclass

index b8a14ff02ed5170c348fd571949165073ad8dbeb..71302b6e121160d8efe048f721cd1b75d8cc78b4 100644 (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
        )
 }