1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2024-12-26 03:21:44 +03:00

Fix parsing of uid/gid on Mingw32

The DAC security driver uses the virStrToLong_ui function to
parse the uid/gid out of the seclabel string. This works on
Linux where 'uid_t' is an unsigned int, but on Mingw32 it is
just an 'int'. This causes compiler warnings about signed/
unsigned int pointer mis-match.

To avoid this, use explicit 'unsigned int ouruid' local
vars to pass into virStrToLong_ui, and then simply assign
to the 'uid_t' type after parsing

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrange 2012-08-21 12:07:04 +01:00
parent dfbb2d3120
commit 7272a92c81

View File

@ -68,25 +68,25 @@ void virSecurityDACSetDynamicOwnership(virSecurityManagerPtr mgr,
static
int parseIds(const char *label, uid_t *uidPtr, gid_t *gidPtr)
{
uid_t uid;
gid_t gid;
unsigned int theuid;
unsigned int thegid;
char *endptr = NULL;
if (label == NULL)
return -1;
if (virStrToLong_ui(label, &endptr, 10, &uid) ||
if (virStrToLong_ui(label, &endptr, 10, &theuid) ||
endptr == NULL || *endptr != ':') {
return -1;
}
if (virStrToLong_ui(endptr + 1, NULL, 10, &gid))
if (virStrToLong_ui(endptr + 1, NULL, 10, &thegid))
return -1;
if (uidPtr)
*uidPtr = uid;
*uidPtr = theuid;
if (gidPtr)
*gidPtr = gid;
*gidPtr = thegid;
return 0;
}