From 06825ca502906d93bfe797faa24a9a6bb675634f Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Thu, 5 May 2016 18:06:05 +0100 Subject: [PATCH] Fix Linux compile error. --- MMDVMHost.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index 620fd76..ee0fd0a 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -36,6 +36,7 @@ #include #if !defined(_WIN32) && !defined(_WIN64) +#include #include #include #include @@ -161,25 +162,22 @@ int CMMDVMHost::run() #if !defined(HD44780) //If we are currently root... if (getuid() == 0) { - //get UID for mmdvm user - uid_t mmdvm_uid = getpwnam("mmdvm")->pw_uid; - if (mmdvm_uid == NULL) { - ::LogWarning("Could not get mmdvm UID, exiting"); - return -1; - } - //get GID for mmdvm user - gid_t mmdvm_gid = getpwnam("mmdvm")->pw_gid; - if (mmdvm_gid == NULL) { - ::LogWarning("Could not get mmdvm GID, exiting"); - return -1; - } - + struct passwd* user = ::getpwnam("mmdvm"); + if (user == NULL) { + ::LogError("Could not get the mmdvm user, exiting"); + return -1; + } + + uid_t mmdvm_uid = user->pw_uid; + gid_t mmdvm_gid = user->pw_gid; + //Set user and group ID's to mmdvm:mmdvm if (setgid(mmdvm_gid) != 0) { ::LogWarning("Could not set mmdvm GID, exiting"); return -1; } - if (setuid(mmdvm_uid) != 0) { + + if (setuid(mmdvm_uid) != 0) { ::LogWarning("Could not set mmdvm UID, exiting"); return -1; }