On Thu, Nov 12, 2015 at 23:47:54 +0200, noxdafox wrote:
Greetings,
I was investigating on an issue in which QEMU's dynamic ownership was
not properly working when calling qemuDomainCoreDumpWithFormat().
Could describe this issue you are investigating?
The core of the issue seems to be the qemuOpenFileAs() function which
does not handle the dynamic ownership. This might affect other libvirt's
features within as well.
Because you are most likely looking at a wrong place; qemuOpenFileAs is
a quite low level function which is just supposed to open/create a file
accessible to a given user. It's up to the caller to decide what the
user should be.
...
The issue is that all the functions within the qemu_driver.c module
are
static. I could indeed include the module itself in my tests but I'm not
sure whether this is acceptable.
We solve this kind of issues by removing "static" from the functions and
adding a new header file (if it doesn't exist yet) called *priv.h
(qemu_driverpriv.h in this case) with the prototypes for such functions.
Only tests are allowed to include such header files.
Furthermore I'd like to have some clarification about the NFS
related
code. It seems that some effort has been put in order to tackle
something I'm not aware of. Could someone briefly explain how to
reproduce NFS failing scenarios?
The main problem with NFS which this ugly function is trying to handle
is called "root-squash". This feature maps all access from UID 0 to an
unprivileged UID. That is, libvirtd (even though it is running as root)
will not be able to access the desired file.
Jirka