oeqa/selftest: add test for git working correctly inside pseudo

The fix for CVE-2022-24765 in git[1] breaks any use of git inside
pseudo. Add a simple test case to oe-selftest to verify that at least
basic uses of git work fine under pseudo.

[1] 8959555cee

(From OE-Core rev: c1b43595a023e481daeb6005c431f51897aeb45d)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 46822268040a23dbb81f71fe35aee8c2663a31f6)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2022-05-06 16:56:00 +01:00 committed by Richard Purdie
parent 1b0306978c
commit 609d6de745
2 changed files with 30 additions and 0 deletions

View File

@ -7,3 +7,18 @@ INHIBIT_DEFAULT_DEPS = "1"
SRC_URI = "gitsm://git.yoctoproject.org/git-submodule-test;branch=master"
SRCREV = "a2885dd7d25380d23627e7544b7bbb55014b16ee"
S = "${WORKDIR}/git"
do_test_git_as_user() {
cd ${S}
git status
}
addtask test_git_as_user after do_unpack
fakeroot do_test_git_as_root() {
cd ${S}
git status
}
do_test_git_as_root[depends] += "virtual/fakeroot-native:do_populate_sysroot"
addtask test_git_as_root after do_unpack

View File

@ -0,0 +1,15 @@
from oeqa.selftest.case import OESelftestTestCase
from oeqa.utils.commands import bitbake
class GitCheck(OESelftestTestCase):
def test_git_intercept(self):
"""
Git binaries with CVE-2022-24765 fixed will refuse to operate on a
repository which is owned by a different user. This breaks our
do_install task as that runs inside pseudo, so the git repository is
owned by the build user but git is running as (fake)root.
We have an intercept which disables pseudo, so verify that it works.
"""
bitbake("git-submodule-test -c test_git_as_user")
bitbake("git-submodule-test -c test_git_as_root")