39 lines
1.1 KiB
Diff
39 lines
1.1 KiB
Diff
From 3e820eaa4c8cb94a63338366cbf014dc5264eba2 Mon Sep 17 00:00:00 2001
|
|
From: Florian Festi <ffesti@redhat.com>
|
|
Date: Tue, 25 Jul 2023 12:08:42 +0200
|
|
Subject: [PATCH] Check inside --root when querying for files
|
|
|
|
rpm -qf checks if the argument actually exists if it can't be found in
|
|
the rpmdb and gives different messages based on that.
|
|
|
|
This was done without taking the root dir into account leading to wrong
|
|
messages if the file only exists in the root dir but not outside.
|
|
|
|
Resolves: #2576
|
|
---
|
|
lib/query.c | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/lib/query.c b/lib/query.c
|
|
index e816241b7..dc2dc910b 100644
|
|
--- a/lib/query.c
|
|
+++ b/lib/query.c
|
|
@@ -470,11 +470,13 @@ static rpmdbMatchIterator initQueryIterator(QVA_t qva, rpmts ts, const char * ar
|
|
|
|
if (mi == NULL) {
|
|
struct stat sb;
|
|
- if (lstat(fn, &sb) != 0)
|
|
+ char * full_fn = rpmGetPath(rpmtsRootDir(ts), fn, NULL);
|
|
+ if (lstat(full_fn, &sb) != 0)
|
|
rpmlog(RPMLOG_ERR, _("file %s: %s\n"), fn, strerror(errno));
|
|
else
|
|
rpmlog(RPMLOG_NOTICE,
|
|
_("file %s is not owned by any package\n"), fn);
|
|
+ free(full_fn);
|
|
}
|
|
|
|
free(fn);
|
|
--
|
|
2.27.0
|
|
|