Bug 1036099

Summary: udisks2: thread safety issues
Product: Red Hat Enterprise Linux 7 Reporter: Florian Weimer <fweimer>
Component: udisks2Assignee: Tomáš Bžatek <tbzatek>
Status: CLOSED CURRENTRELEASE QA Contact: Desktop QE <desktop-qa-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: jkoten, tsmetana, vbenes
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: udisks2-2.1.2-2.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-13 12:59:53 UTC Type: Bug
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:    
Bug Blocks: 1035839    

Description Florian Weimer 2013-11-29 12:48:02 UTC
In udisks_daemon_util_get_caller_uid_sync() in src/udisksdaemonutil.c, the "static" should be dropped from the pw variable; it is a thread safety hazard and cause the function to return wrong data.

The functions find_primary_gid(), is_uid_in_gid() in src/udiskslinuxfilesystem.c call getpwuid(), which is not thread-safe.

src/udisksspawnedjob.c:child_setup() does far too much before the execve() call.  NSS modules might not be available if the fork() happened at an inconvenient time.  getpwuid() etc. should be called prior to the fork, and use thread-safe variants there (that is, getwpuid_r).

Comment 2 Tomáš Bžatek 2014-01-15 16:22:20 UTC
Posted a patch upstream: https://bugs.freedesktop.org/show_bug.cgi?id=73669

Comment 5 Ludek Smid 2014-06-13 12:59:53 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.