From 758ee814abbef68ab16cf04dac2e07166f23221a Mon Sep 17 00:00:00 2001
From: obarun <eric@obarun.org>
Date: Wed, 18 Sep 2019 23:41:17 +1100
Subject: [PATCH] fix errno

---
 src/lib66/get_userhome.c    | 5 +++--
 src/lib66/set_ownerhome.c   | 4 ++--
 src/lib66/set_ownersysdir.c | 2 +-
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/lib66/get_userhome.c b/src/lib66/get_userhome.c
index fa47b2c7..aec37b70 100644
--- a/src/lib66/get_userhome.c
+++ b/src/lib66/get_userhome.c
@@ -22,7 +22,8 @@ char const *get_userhome(uid_t myuid)
 {
 	char const *user_home = NULL ;
 	struct passwd *st = getpwuid(myuid) ;
-	
+	int e = errno ;
+	errno = 0 ;
 	if (!st)
 	{
 		if (!errno) errno = ESRCH ;
@@ -31,6 +32,6 @@ char const *get_userhome(uid_t myuid)
 	user_home = st->pw_dir ;
 
 	if (!user_home) return 0 ;
-
+	errno = e ;
 	return user_home ;
 }
diff --git a/src/lib66/set_ownerhome.c b/src/lib66/set_ownerhome.c
index 07a748a3..39b8555f 100644
--- a/src/lib66/set_ownerhome.c
+++ b/src/lib66/set_ownerhome.c
@@ -26,10 +26,10 @@
 
 int set_ownerhome(stralloc *base,uid_t owner)
 {
-	char const *user_home = NULL ;
+	char const *user_home = 0 ;
 	int e = errno ;
 	struct passwd *st = getpwuid(owner) ;
-	
+	errno = 0 ;
 	if (!st)
 	{
 		if (!errno) errno = ESRCH ;
diff --git a/src/lib66/set_ownersysdir.c b/src/lib66/set_ownersysdir.c
index 624171db..1647d9d8 100644
--- a/src/lib66/set_ownersysdir.c
+++ b/src/lib66/set_ownersysdir.c
@@ -29,7 +29,7 @@ int set_ownersysdir(stralloc *base, uid_t owner)
 	char const *user_home = NULL ;
 	int e = errno ;
 	struct passwd *st = getpwuid(owner) ;
-	
+	errno = 0 ;
 	if (!st)
 	{
 		if (!errno) errno = ESRCH ;
-- 
GitLab