Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 165799

Summary: patch does not preserve context - resets to tmp_t
Product: [Fedora] Fedora Reporter: Tomasz Ostrowski <tometzky>
Component: patchAssignee: Tim Waugh <twaugh>
Status: CLOSED CURRENTRELEASE QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: 9CC: dbaron, gajownik, jorris, nalin, sds, triage
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: 2.5.4-34.fc9 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-06-28 22:17:06 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 453365    
Bug Blocks: 201088    

Description Tomasz Ostrowski 2005-08-12 12:57:39 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050720 Fedora/1.0.6-1.1.fc4 Firefox/1.0.6

Description of problem:
When patching a file which is on the same partition that /tmp directory its security context is reset to tmp_t.

Version-Release number of selected component (if applicable):
patch-2.5.4-24 selinux-policy-targeted-1.25.3-12

How reproducible:

Steps to Reproduce:
1. cd $HOME
2. echo example1 > example1; echo example2 > example2
3. ls -lZ example?
-rw-r--r--  tometzky users    user_u:object_r:user_home_t      example1
-rw-r--r--  tometzky users    user_u:object_r:user_home_t      example2
4. diff -u example1 example2 | patch example1
patching file example1
5. ls -lZ example?

Actual Results:  -rw-r--r--  tometzky users    user_u:object_r:tmp_t            example1
-rw-r--r--  tometzky users    user_u:object_r:user_home_t      example2

Expected Results:  -rw-r--r--  tometzky users    user_u:object_r:user_home_t      example1
-rw-r--r--  tometzky users    user_u:object_r:user_home_t      example2

Additional info:

As can be seen by strace patch creates new version of a file as a temporary file in /tmp/ and then renames this file to the patched one and sets permissions to that of patched one causing that the file context will be tmp_t. If temporary and patched files are not on the same partition it fails to move and falls back to unlinking patched file, copying temporary file to the pathed and resetting permissions thus reseting it's context to default.

I found this when I pathed a file in /etc and then realized that the daemon it was configuring does not start - it couldn't read its configuration.

Comment 1 Tim Waugh 2005-08-12 16:39:02 UTC
Needs to use something like the mch_copy_sec() function from vim-selinux.patch.

Comment 2 Tim Waugh 2005-12-08 12:34:42 UTC
Patch also does not preserve user/group ownership.  This is just not how patch

Comment 3 Tim Waugh 2005-12-20 14:55:27 UTC
*** Bug 167822 has been marked as a duplicate of this bug. ***

Comment 4 Tim Waugh 2006-04-25 15:50:10 UTC
*** Bug 189890 has been marked as a duplicate of this bug. ***

Comment 5 Stephen Smalley 2006-08-04 13:28:18 UTC
patch appears to apply chmod() to preserve mode, so that is analagous to
preserving security context.

Comment 6 Stephen Smalley 2006-08-04 13:36:53 UTC
Also appears to propagate the original file's mode to create file operations,
which would be analogous to calling setfscreatecon() with the result of a
getfilecon on the original prior to creating the output files.

Comment 7 Christian Iseli 2007-01-20 00:13:19 UTC
This report targets the FC3 or FC4 products, which have now been EOL'd.

Could you please check that it still applies to a current Fedora release, and
either update the target product or close it ?


Comment 8 Tomasz Ostrowski 2007-01-20 09:11:12 UTC
Retested on patch-2.5.4-29.2.2 from FC6 - still applies.

Comment 9 Tomasz Ostrowski 2007-01-20 09:16:38 UTC
Strange - I've checked that "I am providing the requested information" and this
bug still is in needinfo state. I'm trying again.

Comment 10 Tim Waugh 2007-10-04 16:05:28 UTC
Too risky for F-8 at this stage; still don't have a working patch (but it's
getting there).

Comment 11 Bug Zapper 2008-05-14 11:57:59 UTC
This message is a reminder that Fedora 7 is nearing the end of life. Approximately 30 (thirty) days from now Fedora will stop maintaining and issuing updates for Fedora 7. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '7'.

Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 7's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 7 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora please change the 'version' of this bug. If you are unable to change the version, please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. If possible, it is recommended that you try the newest available Fedora distribution to see if your bug still exists.

Please read the Release Notes for the newest Fedora distribution to make sure it will meet your needs:

The process we are following is described here:

Comment 12 Fedora Update System 2008-06-16 11:22:14 UTC
patch-2.5.4-34.fc9 has been submitted as an update for Fedora 9

Comment 13 Fedora Update System 2008-06-16 23:32:47 UTC
patch-2.5.4-34.fc9 has been pushed to the Fedora 9 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update patch'.  You can provide feedback for this update here:

Comment 14 Fedora Update System 2008-06-28 22:17:03 UTC
patch-2.5.4-34.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.