summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorTomasz Dziendzielski <tomasz.dziendzielski@gmail.com>2021-02-01 01:32:56 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-02-03 21:45:49 +0000
commit899514c477aaf1681f9d18a022721410a36c5a8c (patch)
treee88c3187ece30e41be3f5c4fb24b9f4b2655712a /meta/lib
parent90ae07586743ee43163edd4cc5e7254427e3e7f1 (diff)
downloadpoky-899514c477aaf1681f9d18a022721410a36c5a8c.tar.gz
sstatesig: Add descriptive error message to getpwuid/getgrgid "uid/gid not found" KeyError
If path is not owned by any user installed on target it gives insufficient error "getpwuid(): uid not found" which may be misleading. This exception occurs if uid/gid of path was not found in PSEUDO_PASSWD files, which simply means the path is owned by host user and there is host user contamination. Add more information to the exception message to make it easier for user to debug. [YOCTO #14031] (From OE-Core rev: 38540b59ed4ec8632e30a5fd6364b010d9da8470) Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oe/sstatesig.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index adfe2e403b..84999ee94d 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -552,9 +552,11 @@ def OEOuthashBasic(path, sigfile, task, d):
552 try: 552 try:
553 update_hash(" %10s" % pwd.getpwuid(s.st_uid).pw_name) 553 update_hash(" %10s" % pwd.getpwuid(s.st_uid).pw_name)
554 update_hash(" %10s" % grp.getgrgid(s.st_gid).gr_name) 554 update_hash(" %10s" % grp.getgrgid(s.st_gid).gr_name)
555 except KeyError: 555 except KeyError as e:
556 bb.warn("KeyError in %s" % path) 556 bb.warn("KeyError in %s" % path)
557 raise 557 msg = ("KeyError: %s\nPath %s is owned by uid %d, gid %d, which doesn't match "
558 "any user/group on target. This may be due to host contamination." % (e, path, s.st_uid, s.st_gid))
559 raise Exception(msg).with_traceback(e.__traceback__)
558 560
559 if include_timestamps: 561 if include_timestamps:
560 update_hash(" %10d" % s.st_mtime) 562 update_hash(" %10d" % s.st_mtime)