[selinux-policy: 756/3172] merge 1.27.10 changes

Daniel J Walsh dwalsh at fedoraproject.org
Thu Oct 7 20:10:12 UTC 2010


commit 5a3b360db774482f3bd56d013166510530aa1bac
Author: Chris PeBenito <cpebenito at tresys.com>
Date:   Tue Oct 18 15:32:36 2005 +0000

    merge 1.27.10 changes

 libselinux/ChangeLog     |    4 ++++
 libselinux/VERSION       |    2 +-
 libselinux/src/seusers.c |   30 ++++++++++++++++--------------
 3 files changed, 21 insertions(+), 15 deletions(-)
---
diff --git a/libselinux/ChangeLog b/libselinux/ChangeLog
index 984d86a..bf7a213 100644
--- a/libselinux/ChangeLog
+++ b/libselinux/ChangeLog
@@ -1,3 +1,7 @@
+1.27.10 2005-10-17
+	* Changed getseuserbyname to ignore empty lines and to handle
+	no matching entry in the same manner as no seusers file.
+
 1.27.9 2005-10-13
 	* Changed selinux_mkload_policy to try downgrading the
 	latest policy version available to the kernel-supported version.
diff --git a/libselinux/VERSION b/libselinux/VERSION
index 2151d61..3fdfffc 100644
--- a/libselinux/VERSION
+++ b/libselinux/VERSION
@@ -1 +1 @@
-1.27.9
+1.27.10
diff --git a/libselinux/src/seusers.c b/libselinux/src/seusers.c
index 2b6c42d..926b149 100644
--- a/libselinux/src/seusers.c
+++ b/libselinux/src/seusers.c
@@ -26,9 +26,9 @@ static int process_seusers(const char *buffer,
 	start = newbuf;
 	while (isspace(*start))
 		start++;
-	if (*start == '#') {
+	if (*start == '#' || *start == 0) {
 		free(newbuf);
-		return -1; /* Comment, skip over */
+		return -1; /* Comment or empty line, skip over */
 	}
 	end = strchr(start, ':');
 	if (!end)
@@ -98,16 +98,8 @@ int getseuserbyname(const char *name, char **r_seuser, char **r_level) {
         char *defaultlevel=NULL;
 
 	cfg = fopen(selinux_usersconf_path(), "r");
-	if (!cfg) {
-		if (require_seusers)
-			return -1;
-		/* Fall back to the Linux username and no level. */
-		*r_seuser = strdup(name);
-		if (!(*r_seuser))
-			return -1;
-		*r_level = NULL;
-		return 0;
-	}
+	if (!cfg)
+		goto nomatch;
 
 	while (getline(&buffer, &size, cfg) > 0) {
 		++lineno;
@@ -138,6 +130,7 @@ int getseuserbyname(const char *name, char **r_seuser, char **r_level) {
 	if (buffer) 
 		free(buffer);
 	fclose(cfg);
+
 	if (seuser) {
 		free(username);
 		free(defaultseuser);
@@ -152,6 +145,15 @@ int getseuserbyname(const char *name, char **r_seuser, char **r_level) {
 		*r_level = defaultlevel;
 		return 0;
 	}
-		
-	return -1;
+
+nomatch:
+	if (require_seusers)
+		return -1;
+
+	/* Fall back to the Linux username and no level. */
+	*r_seuser = strdup(name);
+	if (!(*r_seuser))
+		return -1;
+	*r_level = NULL;
+	return 0;
 }


More information about the scm-commits mailing list