aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2010-04-28 21:36:03 -0600
committerEric Blake <eblake@redhat.com>2010-05-03 17:07:39 -0600
commit7f31e28c6efa3aba17f1e6ee333135949379be7d (patch)
tree03ac18d5423c489a511652be3b22b9feedd5f725
parentnwfilter: skip some interfaces on filter update (diff)
downloadlibvirt-7f31e28c6efa3aba17f1e6ee333135949379be7d.tar.gz
libvirt-7f31e28c6efa3aba17f1e6ee333135949379be7d.tar.bz2
libvirt-7f31e28c6efa3aba17f1e6ee333135949379be7d.zip
build: avoid compiler warning
Necessary on cygwin, where uid_t and gid_t are 4-byte long rather than int, causing gcc -Wformat warnings. * src/util/util.c (virFileOperationNoFork, virDirCreateNoFork) (virFileOperation, virDirCreate, virGetUserEnt): Cast uid_t and gid_t before passing to printf. * .gitignore: Ignore Windows executables.
-rw-r--r--.gitignore1
-rw-r--r--src/util/util.c24
2 files changed, 15 insertions, 10 deletions
diff --git a/.gitignore b/.gitignore
index 8c275f4bb..4faf3840b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
*#*#
*.#*#
*.a
+*.exe
*.o
*.orig
*.rej
diff --git a/src/util/util.c b/src/util/util.c
index 320918506..536cadd6c 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -74,11 +74,15 @@
#include "util.h"
#include "memory.h"
#include "threads.h"
+#include "verify.h"
#ifndef NSIG
# define NSIG 32
#endif
+verify(sizeof(gid_t) <= sizeof (unsigned int) &&
+ sizeof(uid_t) <= sizeof (unsigned int));
+
#define VIR_FROM_THIS VIR_FROM_NONE
#define virUtilError(code, ...) \
@@ -1277,7 +1281,7 @@ static int virFileOperationNoFork(const char *path, int openflags, mode_t mode,
&& (fchown(fd, uid, gid) < 0)) {
ret = errno;
virReportSystemError(errno, _("cannot chown '%s' to (%u, %u)"),
- path, uid, gid);
+ path, (unsigned int) uid, (unsigned int) gid);
goto error;
}
if ((flags & VIR_FILE_OP_FORCE_PERMS)
@@ -1328,7 +1332,7 @@ static int virDirCreateNoFork(const char *path, mode_t mode, uid_t uid, gid_t gi
&& (chown(path, uid, gid) < 0)) {
ret = errno;
virReportSystemError(errno, _("cannot chown '%s' to (%u, %u)"),
- path, uid, gid);
+ path, (unsigned int) uid, (unsigned int) gid);
goto error;
}
if ((flags & VIR_DIR_CREATE_FORCE_PERMS)
@@ -1407,14 +1411,14 @@ parenterror:
ret = errno;
virReportSystemError(errno,
_("cannot set gid %u creating '%s'"),
- gid, path);
+ (unsigned int) gid, path);
goto childerror;
}
if ((uid != 0) && (setuid(uid) != 0)) {
ret = errno;
virReportSystemError(errno,
_("cannot set uid %u creating '%s'"),
- uid, path);
+ (unsigned int) uid, path);
goto childerror;
}
if ((fd = open(path, openflags, mode)) < 0) {
@@ -1436,7 +1440,7 @@ parenterror:
&& (fchown(fd, -1, gid) < 0)) {
ret = errno;
virReportSystemError(errno, _("cannot chown '%s' to (%u, %u)"),
- path, uid, gid);
+ path, (unsigned int) uid, (unsigned int) gid);
goto childerror;
}
if ((flags & VIR_FILE_OP_FORCE_PERMS)
@@ -1517,13 +1521,13 @@ parenterror:
if ((gid != 0) && (setgid(gid) != 0)) {
ret = errno;
virReportSystemError(errno, _("cannot set gid %u creating '%s'"),
- gid, path);
+ (unsigned int) gid, path);
goto childerror;
}
if ((uid != 0) && (setuid(uid) != 0)) {
ret = errno;
virReportSystemError(errno, _("cannot set uid %u creating '%s'"),
- uid, path);
+ (unsigned int) uid, path);
goto childerror;
}
if (mkdir(path, mode) < 0) {
@@ -1547,7 +1551,7 @@ parenterror:
ret = errno;
virReportSystemError(errno,
_("cannot chown '%s' to group %u"),
- path, gid);
+ path, (unsigned int) gid);
goto childerror;
}
if ((flags & VIR_DIR_CREATE_FORCE_PERMS)
@@ -2563,8 +2567,8 @@ static char *virGetUserEnt(uid_t uid,
*/
if (getpwuid_r(uid, &pwbuf, strbuf, strbuflen, &pw) != 0 || pw == NULL) {
virReportSystemError(errno,
- _("Failed to find user record for uid '%d'"),
- uid);
+ _("Failed to find user record for uid '%u'"),
+ (unsigned int) uid);
VIR_FREE(strbuf);
return NULL;
}