On 06/18/2012 03:57 AM, Osier Yang wrote: > The comment says: > > /* Now create the final dir in the path with the uid/gid/mode > * requested in the config. If the dir already exists, just set > * the perms. > */ > > However, virDirCreate is only invoked if the target path doesn't > exist yet (which is opposite with the comment), or the uid from > the config is not -1 (I don't understand why, think it's just > another mistake). And the result is the perms of the pool won't > be changed if one tries to build the pool with different perms > again. > > Besides these logic error fix, if no uid and gid are specified in > the config, the practical used uid, gid are reflected. > - uid_t uid = (pool->def->target.perms.uid == -1) > - ? getuid() : pool->def->target.perms.uid; > - gid_t gid = (pool->def->target.perms.gid == -1) > - ? getgid() : pool->def->target.perms.gid; > - > + uid = (pool->def->target.perms.uid == -1) Pre-existing, but comparison of uid_t against -1 is not portable; you need an explicit cast: pool->def->target.perms-uid == (uid_t) -1 > > + /* Reflect the actual uid and gid to the config. */ > + if (pool->def->target.perms.uid == -1) > + pool->def->target.perms.uid = uid; > + if (pool->def->target.perms.gid == -1) > + pool->def->target.perms.gid = gid; And again. -- Eric Blake eblake@xxxxxxxxxx +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list