You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.3 KiB
67 lines
2.3 KiB
From c140768202e271b60910644c1e4bf848a50218d3 Mon Sep 17 00:00:00 2001
|
|
From: Panu Matilainen <pmatilai@redhat.com>
|
|
Date: Mon, 27 Nov 2023 11:52:34 +0200
|
|
Subject: [PATCH] Emit full paths for file disposition diagnostics on
|
|
--fsmdebug
|
|
|
|
The full path is visible in the actual file operations later, but the
|
|
pre-flight disposition diagnostics is unreadable without the full path.
|
|
This regressed in the switch to relative paths for the *at() API family
|
|
for the symlink CVE fixes.
|
|
---
|
|
lib/fsm.c | 12 ++++++------
|
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/lib/fsm.c b/lib/fsm.c
|
|
index 091e90554..fcd764648 100644
|
|
--- a/lib/fsm.c
|
|
+++ b/lib/fsm.c
|
|
@@ -482,14 +482,14 @@ static void removeSBITS(int dirfd, const char *path)
|
|
}
|
|
}
|
|
|
|
-static void fsmDebug(const char *fpath, rpmFileAction action,
|
|
+static void fsmDebug(const char *dn, const char *fpath, rpmFileAction action,
|
|
const struct stat *st)
|
|
{
|
|
- rpmlog(RPMLOG_DEBUG, "%-10s %06o%3d (%4d,%4d)%6d %s\n",
|
|
+ rpmlog(RPMLOG_DEBUG, "%-10s %06o%3d (%4d,%4d)%6d %s%s\n",
|
|
fileActionString(action), (int)st->st_mode,
|
|
(int)st->st_nlink, (int)st->st_uid,
|
|
(int)st->st_gid, (int)st->st_size,
|
|
- (fpath ? fpath : ""));
|
|
+ (dn ? dn : ""), (fpath ? fpath : ""));
|
|
}
|
|
|
|
static int fsmSymlink(const char *opath, int dirfd, const char *path)
|
|
@@ -910,7 +910,7 @@ int rpmPackageFilesInstall(rpmts ts, rpmte te, rpmfiles files,
|
|
(fp->sb.st_nlink == 1 || fp->action == FA_TOUCH);
|
|
|
|
setFileState(fs, fx);
|
|
- fsmDebug(fp->fpath, fp->action, &fp->sb);
|
|
+ fsmDebug(rpmfiDN(fi), fp->fpath, fp->action, &fp->sb);
|
|
|
|
fp->stage = FILE_PRE;
|
|
}
|
|
@@ -975,7 +975,7 @@ int rpmPackageFilesInstall(rpmts ts, rpmte te, rpmfiles files,
|
|
rpmlog(RPMLOG_DEBUG, "file %s vanished unexpectedly\n",
|
|
fp->fpath);
|
|
fp->action = FA_CREATE;
|
|
- fsmDebug(fp->fpath, fp->action, &fp->sb);
|
|
+ fsmDebug(rpmfiDN(fi), fp->fpath, fp->action, &fp->sb);
|
|
}
|
|
|
|
/* When touching we don't need any of this... */
|
|
@@ -1138,7 +1138,7 @@ int rpmPackageFilesRemove(rpmts ts, rpmte te, rpmfiles files,
|
|
|
|
rc = fsmStat(di.dirfd, fp->fpath, 1, &fp->sb);
|
|
|
|
- fsmDebug(fp->fpath, fp->action, &fp->sb);
|
|
+ fsmDebug(rpmfiDN(fi), fp->fpath, fp->action, &fp->sb);
|
|
|
|
/* Run fsm file pre hook for all plugins */
|
|
rc = rpmpluginsCallFsmFilePre(plugins, fi, fp->fpath,
|
|
--
|
|
2.43.0
|
|
|