From a3d6fa0a51998811c880e04df30ccdab786c925e Mon Sep 17 00:00:00 2001
From: "Rob Swindell (on Windows)" <rob@synchro.net>
Date: Mon, 12 Jun 2023 11:53:40 -0700
Subject: [PATCH] More consistent logging of errno value (and descriptions)

Should use safe_strerror() here instead... later.
---
 src/sbbs3/sbbscon.c | 31 +++++++++++--------------------
 1 file changed, 11 insertions(+), 20 deletions(-)

diff --git a/src/sbbs3/sbbscon.c b/src/sbbs3/sbbscon.c
index 688fa1fb35..a2974c0483 100644
--- a/src/sbbs3/sbbscon.c
+++ b/src/sbbs3/sbbscon.c
@@ -359,8 +359,7 @@ static BOOL do_seteuid(BOOL to_new)
 	pthread_mutex_unlock(&setid_mutex);
 
 	if(!result) {
-		lputs(LOG_ERR,"!seteuid FAILED");
-		lputs(LOG_ERR,strerror(errno));
+		lprintf(LOG_ERR,"!seteuid FAILED with error %d (%s)", errno, strerror(errno));
 	}
 	return result;
 }
@@ -393,31 +392,26 @@ BOOL do_setuid(BOOL force)
 
 	if(getegid()!=old_gid) {
 		if(setregid(-1,old_gid) != 0)
-			lputs(LOG_ERR, "!setregid FAILED");
+			lprintf(LOG_ERR, "!setregid FAILED with error %d (%s)", errno, strerror(errno));
 	}
 	if(geteuid()!=old_gid) {
 		if(setreuid(-1,old_uid) != 0)
-			lputs(LOG_ERR, "!setreuid FAILED");
+			lprintf(LOG_ERR, "!setreuid FAILED with error %d (%s)", errno, strerror(errno));
 	}
 	if(getgid() != new_gid || getegid() != new_gid) {
-		if(setregid(new_gid,new_gid))
-		{
-			lputs(LOG_ERR,"!setgid FAILED");
-			lputs(LOG_ERR,strerror(errno));
+		if(setregid(new_gid,new_gid)) {
+			lprintf(LOG_ERR,"!setgid FAILED with error %d (%s)", errno, strerror(errno));
 			result=FALSE;
 		}
 	}
 
 	if(getuid() != new_uid || geteuid() != new_uid) {
 		if(initgroups(new_uid_name, new_gid)) {
-			lputs(LOG_ERR,"!initgroups FAILED");
-			lputs(LOG_ERR,strerror(errno));
+			lprintf(LOG_ERR,"!initgroups FAILED with error %d (%s)", errno, strerror(errno));
 			result=FALSE;
 		}
-		if(setreuid(new_uid,new_uid))
-		{
-			lputs(LOG_ERR,"!setuid FAILED");
-			lputs(LOG_ERR,strerror(errno));
+		if(setreuid(new_uid,new_uid)) {
+			lprintf(LOG_ERR,"!setuid FAILED with error %d (%s)", errno, strerror(errno));
 			result=FALSE;
 		}
 	}
@@ -492,8 +486,7 @@ static int linux_keepcaps(void)
 	 */
 	if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) < 0) {
 		if (errno != EINVAL) {
-			lputs(LOG_ERR,"linux_keepcaps FAILED");
-			lputs(LOG_ERR,strerror(errno));
+			lprintf(LOG_ERR,"linux_keepcaps FAILED with error %d (%s)", errno, strerror(errno));
 		}
         return(-1);
 	}
@@ -1774,8 +1767,7 @@ int main(int argc, char** argv)
 		whoami();
 		if(list_caps() && linux_initialprivs()) {
 			if(linux_keepcaps() < 0) {
-				lputs(LOG_ERR,"linux_keepcaps() FAILED");
-				lputs(LOG_ERR,strerror(errno));
+				lprintf(LOG_ERR,"linux_keepcaps() FAILED with error %d (%s)", errno, strerror(errno));
 			}
 			else {
 				if(!change_user()) {
@@ -1783,8 +1775,7 @@ int main(int argc, char** argv)
 				}
 				else {
 					if(!linux_minprivs()) {
-						lputs(LOG_ERR,"linux_minprivs() FAILED");
-						lputs(LOG_ERR,strerror(errno));
+						lprintf(LOG_ERR,"linux_minprivs() FAILED with error %d (%s)", errno, strerror(errno));
 					}
 					else {
 						capabilities_set=TRUE;
-- 
GitLab