Projects
Mega:23.03
rpm
_service:tar_scm:rpm-fix-rpm-is-blocked-when-op...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:rpm-fix-rpm-is-blocked-when-open-fifo-file.patch of Package rpm
From 988df03f8a293f7aa1d6bb872b981c5dfc6493d9 Mon Sep 17 00:00:00 2001 From: xujing <xujing125@huawei.com> Date: Tue, 8 Nov 2022 10:36:36 +0800 Subject: [PATCH] rpm: fix rpm is blocked when open fifo file --- lib/fsm.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/fsm.c b/lib/fsm.c index c9ab3e1..c1c86b0 100644 --- a/lib/fsm.c +++ b/lib/fsm.c @@ -1137,8 +1137,13 @@ int rpmPackageFilesInstall(rpmts ts, rpmte te, rpmfiles files, if (!rc && fd == -1 && !S_ISLNK(fp->sb.st_mode)) { /* Only follow safe symlinks, and never on temporary files */ - fd = fsmOpenat(di.dirfd, fp->fpath, - fp->suffix ? AT_SYMLINK_NOFOLLOW : 0, 0); + int flags = fp->suffix ? AT_SYMLINK_NOFOLLOW : 0; + + /* Open the FIFO file in O_RDWR mode to prevent process blocking */ + if (S_ISFIFO(fp->sb.st_mode)) + flags |= O_RDWR; + + fd = fsmOpenat(di.dirfd, fp->fpath, flags, 0); if (fd < 0) rc = RPMERR_OPEN_FAILED; } -- 2.27.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2