Fix handling of libselinux getconlist with only one entry

This commit is contained in:
Dan Walsh 2013-09-23 09:58:31 -04:00
parent aa9384564f
commit 763f66c192
2 changed files with 27 additions and 7 deletions

View File

@ -706,7 +706,7 @@ index 802a07f..6ff83a7 100644
}
diff --git a/libselinux/src/get_context_list.c b/libselinux/src/get_context_list.c
index b9e8002..355730a 100644
index b9e8002..1d91123 100644
--- a/libselinux/src/get_context_list.c
+++ b/libselinux/src/get_context_list.c
@@ -426,7 +426,7 @@ int get_ordered_context_list(const char *user,
@ -727,8 +727,11 @@ index b9e8002..355730a 100644
snprintf(fname, fname_len, "%s%s", user_contexts_path, user);
fp = fopen(fname, "r");
if (fp) {
@@ -465,31 +465,28 @@ int get_ordered_context_list(const char *user,
@@ -463,33 +463,31 @@ int get_ordered_context_list(const char *user,
__FUNCTION__, selinux_default_context_path());
/* Fall through */
}
+ rc = 0;
}
+ if (!nordered)
@ -764,7 +767,7 @@ index b9e8002..355730a 100644
- to the caller. Otherwise, fall back to the entire reachable list. */
- if (nordered && nordered < nreach) {
+ /* Only report the ordered entries to the caller. */
+ if (nordered < nreach) {
+ if (nordered <= nreach) {
for (i = nordered; i < nreach; i++)
free(reachable[i]);
reachable[nordered] = NULL;
@ -774,7 +777,7 @@ index b9e8002..355730a 100644
}
out:
@@ -523,14 +520,6 @@ int get_ordered_context_list(const char *user,
@@ -523,14 +521,6 @@ int get_ordered_context_list(const char *user,
}
rc = 1; /* one context in the list */
goto out;
@ -1049,10 +1052,21 @@ index 2c7c85c..4a4aebc 100644
hidden_proto(selinux_booleans_subs_path)
hidden_proto(selinux_default_context_path)
diff --git a/libselinux/src/selinuxswig_python.i b/libselinux/src/selinuxswig_python.i
index 359bd02..0ab0bae 100644
index 359bd02..9884454 100644
--- a/libselinux/src/selinuxswig_python.i
+++ b/libselinux/src/selinuxswig_python.i
@@ -74,6 +74,10 @@ def install(src, dest):
@@ -10,6 +10,10 @@
import shutil, os, stat
+DISABLED = -1
+PERMISSIVE = 0
+ENFORCING = 1
+
def restorecon(path, recursive=False):
""" Restore SELinux context on a given path """
@@ -74,6 +78,10 @@ def install(src, dest):
$1 = &temp;
}

View File

@ -10,7 +10,7 @@
Summary: SELinux library and simple utilities
Name: libselinux
Version: 2.1.13
Release: 17%{?dist}
Release: 19%{?dist}
License: Public Domain
Group: System Environment/Libraries
Source: %{name}-%{version}.tgz
@ -240,6 +240,12 @@ rm -rf %{buildroot}
%{ruby_sitearch}/selinux.so
%changelog
* Mon Sep 16 2013 Dan Walsh <dwalsh@redhat.com> - 2.1.13-19
- Fix handling of libselinux getconlist with only one entry
* Tue Sep 3 2013 Dan Walsh <dwalsh@redhat.com> - 2.1.13-17
- Add Python constants for SELinux enforcing modes
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.13-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild