From 28e8db1dc2d09a568ca4de952f0ddcbf675348e6 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Wed, 18 Mar 2015 09:48:32 +0100 Subject: [PATCH] Fix the unsigned issue for gid/uid handling --- src/main.c | 4 ++-- src/utils.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main.c b/src/main.c index 02140965..e4e0f791 100644 --- a/src/main.c +++ b/src/main.c @@ -756,12 +756,12 @@ main(int argc, char **argv) if (opt_fork) pidfile = tvh_fopen(opt_pidpath, "w+"); - if (gid >= 0 && (getgid() != gid) && setgid(gid)) { + if (gid != -1 && (getgid() != gid) && setgid(gid)) { tvhlog(LOG_ALERT, "START", "setgid(%d) failed, do you have permission?", gid); return 1; } - if (uid >= 0 && (getuid() != uid) && setuid(uid)) { + if (uid != -1 && (getuid() != uid) && setuid(uid)) { tvhlog(LOG_ALERT, "START", "setuid(%d) failed, do you have permission?", uid); return 1; diff --git a/src/utils.c b/src/utils.c index 6e62f02c..ba7ec46c 100644 --- a/src/utils.c +++ b/src/utils.c @@ -491,7 +491,7 @@ makedirs ( const char *inpath, int mode, gid_t gid, uid_t uid ) path[x] = 0; if (stat(path, &st)) { err = mkdir(path, mode); - if (!err && gid >= 0 && uid >= 0) + if (!err && gid != -1 && uid != -1) err = chown(path, uid, gid); tvhtrace("settings", "Creating directory \"%s\" with octal permissions " "\"%o\" gid %d uid %d", path, mode, gid, uid);