From 6563e6551657b63898c7387fd56bb2f3ee115fa1 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Wed, 1 Aug 2018 11:42:08 +0200 Subject: [PATCH 16/39] logrotate: explicitly cast uid_t and gid_t to unsigned int reason: explicitly cast uid_t and gid_t to unsigned int https://github.com/logrotate/logrotate/commit/6563e6551657b63898c7387fd56bb2f3ee115fa1 ... before passing them to the %u conversion in printf() invocation. The uid_t and gid_t types do not need to be the same as unsigned int on all supported platforms. Closes #200 --- config.c | 2 +- logrotate.c | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/config.c b/config.c index 53b7416..960ee9b 100644 --- a/config.c +++ b/config.c @@ -361,7 +361,7 @@ static int do_mkdir(const char *path, mode_t mode, uid_t uid, gid_t gid) { /* newly created directory, set the owner and permissions */ if (chown(path, uid, gid) != 0) { message(MESS_ERROR, "error setting owner of %s to uid %u and gid %u: %s\n", - path, uid, gid, strerror(errno)); + path, (unsigned) uid, (unsigned) gid, strerror(errno)); return -1; } diff --git a/logrotate.c b/logrotate.c index 4fd546f..46f10a2 100644 --- a/logrotate.c +++ b/logrotate.c @@ -157,10 +157,10 @@ int switch_user(uid_t user, gid_t group) { if (save_euid == user && save_egid == group) return 0; message(MESS_DEBUG, "switching euid to %u and egid to %u\n", - user, group); + (unsigned) user, (unsigned) group); if (setegid(group) || seteuid(user)) { message(MESS_ERROR, "error switching euid to %u and egid to %u: %s\n", - user, group, strerror(errno)); + (unsigned) user, (unsigned) group, strerror(errno)); return 1; } return 0; @@ -180,10 +180,10 @@ static int switch_user_permanently(const struct logInfo *log) { return 1; } message(MESS_DEBUG, "switching uid to %u and gid to %u\n", - user, group); + (unsigned) user, (unsigned) group); if (setgid(group) || setuid(user)) { message(MESS_ERROR, "error switching euid to %u and egid to %u: %s\n", - user, group, strerror(errno)); + (unsigned) user, (unsigned) group, strerror(errno)); return 1; } return 0; @@ -541,7 +541,7 @@ static int createOutputFile(char *fileName, int flags, struct stat *sb, if ((sb_create.st_uid != sb->st_uid || sb_create.st_gid != sb->st_gid) && fchown(fd, sb->st_uid, sb->st_gid)) { message(MESS_ERROR, "error setting owner of %s to uid %u and gid %u: %s\n", - fileName, sb->st_uid, sb->st_gid, strerror(errno)); + fileName, (unsigned) sb->st_uid, (unsigned) sb->st_gid, strerror(errno)); close(fd); return -1; } @@ -1993,7 +1993,8 @@ static int rotateLogSet(struct logInfo *log, int force) message(MESS_DEBUG, "%jd bytes ", (intmax_t)log->threshold); break; default: - message(MESS_DEBUG, "rotateLogSet() does not have case for: %u ", log->criterium); + message(MESS_DEBUG, "rotateLogSet() does not have case for: %u ", + (unsigned) log->criterium); } } -- 1.8.3.1