Move selinux.go to /usr/lib64/golang/src/pkg/github.com/selinux/selinux.go
- Add Int_to_mcs function to generate MCS labels from integers.
This commit is contained in:
parent
0aa8cbe3ec
commit
ee8c867b33
@ -10,14 +10,14 @@ index fd4f0b1..51469bc 100644
|
|||||||
DISABLE_SETRANS ?= n
|
DISABLE_SETRANS ?= n
|
||||||
diff --git a/libselinux/golang/Makefile b/libselinux/golang/Makefile
|
diff --git a/libselinux/golang/Makefile b/libselinux/golang/Makefile
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..e0be66f
|
index 0000000..ad3e481
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/libselinux/golang/Makefile
|
+++ b/libselinux/golang/Makefile
|
||||||
@@ -0,0 +1,17 @@
|
@@ -0,0 +1,17 @@
|
||||||
+# Installation directories.
|
+# Installation directories.
|
||||||
+PREFIX ?= $(DESTDIR)/usr
|
+PREFIX ?= $(DESTDIR)/usr
|
||||||
+GODIR ?= $(PREFIX)/share/gocode/src/selinux
|
+LIBDIR ?= $(DESTDIR)/usr/lib
|
||||||
+
|
+GODIR ?= $(LIBDIR)/golang/src/pkg/github.com/selinux
|
||||||
+all:
|
+all:
|
||||||
+
|
+
|
||||||
+install:
|
+install:
|
||||||
@ -33,10 +33,10 @@ index 0000000..e0be66f
|
|||||||
+relabel:
|
+relabel:
|
||||||
diff --git a/libselinux/golang/selinux.go b/libselinux/golang/selinux.go
|
diff --git a/libselinux/golang/selinux.go b/libselinux/golang/selinux.go
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..018c955
|
index 0000000..9e7fdb3
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/libselinux/golang/selinux.go
|
+++ b/libselinux/golang/selinux.go
|
||||||
@@ -0,0 +1,282 @@
|
@@ -0,0 +1,302 @@
|
||||||
+package selinux
|
+package selinux
|
||||||
+
|
+
|
||||||
+/*
|
+/*
|
||||||
@ -183,6 +183,24 @@ index 0000000..018c955
|
|||||||
+ return mcs_list[mcs]
|
+ return mcs_list[mcs]
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
+func Int_to_mcs(id int, catRange uint32) string {
|
||||||
|
+ if ((id < 1) || (id >523776)) {
|
||||||
|
+ return "";
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ SETSIZE := int(catRange);
|
||||||
|
+ TIER := SETSIZE;
|
||||||
|
+
|
||||||
|
+ ORD := id;
|
||||||
|
+ for ;ORD > TIER; {
|
||||||
|
+ ORD = ORD - TIER;
|
||||||
|
+ TIER -= 1;
|
||||||
|
+ }
|
||||||
|
+ TIER = SETSIZE - TIER;
|
||||||
|
+ ORD = ORD + TIER;
|
||||||
|
+ return fmt.Sprintf("s0:c%d,c%d", TIER, ORD);
|
||||||
|
+}
|
||||||
|
+
|
||||||
+func uniq_mcs(catRange uint32) string {
|
+func uniq_mcs(catRange uint32) string {
|
||||||
+ var n uint32
|
+ var n uint32
|
||||||
+ var c1,c2 uint32
|
+ var c1,c2 uint32
|
||||||
@ -264,7 +282,7 @@ index 0000000..018c955
|
|||||||
+ }
|
+ }
|
||||||
+exit:
|
+exit:
|
||||||
+ var scon Context
|
+ var scon Context
|
||||||
+ mcs := uniq_mcs(1024)
|
+ mcs := Int_to_mcs(os.Getpid(), 1024)
|
||||||
+ scon = New_context(process_label)
|
+ scon = New_context(process_label)
|
||||||
+ scon.Set_level(mcs)
|
+ scon.Set_level(mcs)
|
||||||
+ process_label = scon.Get()
|
+ process_label = scon.Get()
|
||||||
@ -314,10 +332,12 @@ index 0000000..018c955
|
|||||||
+ } else {
|
+ } else {
|
||||||
+ fmt.Println("Disabled")
|
+ fmt.Println("Disabled")
|
||||||
+ }
|
+ }
|
||||||
+ fmt.Println(Selinux_getenforce())
|
+ fmt.Println("getenforce ", Selinux_getenforce())
|
||||||
+ fmt.Println(Selinux_getenforcemode())
|
+ fmt.Println("getenforcemode ", Selinux_getenforcemode())
|
||||||
+ flabel,_ = Matchpathcon("/home/dwalsh/.emacs", 0)
|
+ flabel,_ = Matchpathcon("/home/dwalsh/.emacs", 0)
|
||||||
+ fmt.Println(flabel)
|
+ fmt.Println(flabel)
|
||||||
|
+ pid := os.Getpid()
|
||||||
|
+ fmt.Printf("PID:%d MCS:%s\n", pid, Int_to_mcs(pid, 1023))
|
||||||
+}
|
+}
|
||||||
diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
|
diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
|
||||||
index 02dd829..6dfdb46 100644
|
index 02dd829..6dfdb46 100644
|
||||||
@ -332,6 +352,134 @@ index 02dd829..6dfdb46 100644
|
|||||||
ln -sf $@ $(TARGET)
|
ln -sf $@ $(TARGET)
|
||||||
|
|
||||||
$(LIBPC): $(LIBPC).in ../VERSION
|
$(LIBPC): $(LIBPC).in ../VERSION
|
||||||
|
diff --git a/libselinux/src/avc_sidtab.c b/libselinux/src/avc_sidtab.c
|
||||||
|
index 0b696bb..506e236 100644
|
||||||
|
--- a/libselinux/src/avc_sidtab.c
|
||||||
|
+++ b/libselinux/src/avc_sidtab.c
|
||||||
|
@@ -81,6 +81,11 @@ sidtab_context_to_sid(struct sidtab *s,
|
||||||
|
int hvalue, rc = 0;
|
||||||
|
struct sidtab_node *cur;
|
||||||
|
|
||||||
|
+ if (! ctx) {
|
||||||
|
+ errno=EINVAL;
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
*sid = NULL;
|
||||||
|
hvalue = sidtab_hash(ctx);
|
||||||
|
|
||||||
|
diff --git a/libselinux/src/canonicalize_context.c b/libselinux/src/canonicalize_context.c
|
||||||
|
index 176c45a..6075025 100644
|
||||||
|
--- a/libselinux/src/canonicalize_context.c
|
||||||
|
+++ b/libselinux/src/canonicalize_context.c
|
||||||
|
@@ -17,6 +17,11 @@ int security_canonicalize_context_raw(const security_context_t con,
|
||||||
|
size_t size;
|
||||||
|
int fd, ret;
|
||||||
|
|
||||||
|
+ if (! con) {
|
||||||
|
+ errno=EINVAL;
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (!selinux_mnt) {
|
||||||
|
errno = ENOENT;
|
||||||
|
return -1;
|
||||||
|
diff --git a/libselinux/src/check_context.c b/libselinux/src/check_context.c
|
||||||
|
index 33ab5e3..1277bdd 100644
|
||||||
|
--- a/libselinux/src/check_context.c
|
||||||
|
+++ b/libselinux/src/check_context.c
|
||||||
|
@@ -14,6 +14,11 @@ int security_check_context_raw(const security_context_t con)
|
||||||
|
char path[PATH_MAX];
|
||||||
|
int fd, ret;
|
||||||
|
|
||||||
|
+ if (! con) {
|
||||||
|
+ errno=EINVAL;
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (!selinux_mnt) {
|
||||||
|
errno = ENOENT;
|
||||||
|
return -1;
|
||||||
|
diff --git a/libselinux/src/compute_av.c b/libselinux/src/compute_av.c
|
||||||
|
index 5962c0b..61ea454 100644
|
||||||
|
--- a/libselinux/src/compute_av.c
|
||||||
|
+++ b/libselinux/src/compute_av.c
|
||||||
|
@@ -26,6 +26,11 @@ int security_compute_av_flags_raw(const security_context_t scon,
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if ((! scon) || (! tcon)) {
|
||||||
|
+ errno=EINVAL;
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
snprintf(path, sizeof path, "%s/access", selinux_mnt);
|
||||||
|
fd = open(path, O_RDWR);
|
||||||
|
if (fd < 0)
|
||||||
|
diff --git a/libselinux/src/compute_create.c b/libselinux/src/compute_create.c
|
||||||
|
index 3c05be3..34a1ccd 100644
|
||||||
|
--- a/libselinux/src/compute_create.c
|
||||||
|
+++ b/libselinux/src/compute_create.c
|
||||||
|
@@ -64,6 +64,11 @@ int security_compute_create_name_raw(const security_context_t scon,
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if ((! scon) || (! tcon)) {
|
||||||
|
+ errno=EINVAL;
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
snprintf(path, sizeof path, "%s/create", selinux_mnt);
|
||||||
|
fd = open(path, O_RDWR);
|
||||||
|
if (fd < 0)
|
||||||
|
diff --git a/libselinux/src/compute_member.c b/libselinux/src/compute_member.c
|
||||||
|
index dad0a77..7850986 100644
|
||||||
|
--- a/libselinux/src/compute_member.c
|
||||||
|
+++ b/libselinux/src/compute_member.c
|
||||||
|
@@ -25,6 +25,11 @@ int security_compute_member_raw(const security_context_t scon,
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if ((! scon) || (! tcon)) {
|
||||||
|
+ errno=EINVAL;
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
snprintf(path, sizeof path, "%s/member", selinux_mnt);
|
||||||
|
fd = open(path, O_RDWR);
|
||||||
|
if (fd < 0)
|
||||||
|
diff --git a/libselinux/src/compute_relabel.c b/libselinux/src/compute_relabel.c
|
||||||
|
index 656f00a..2560e78 100644
|
||||||
|
--- a/libselinux/src/compute_relabel.c
|
||||||
|
+++ b/libselinux/src/compute_relabel.c
|
||||||
|
@@ -25,6 +25,11 @@ int security_compute_relabel_raw(const security_context_t scon,
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if ((! scon) || (! tcon)) {
|
||||||
|
+ errno=EINVAL;
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
snprintf(path, sizeof path, "%s/relabel", selinux_mnt);
|
||||||
|
fd = open(path, O_RDWR);
|
||||||
|
if (fd < 0)
|
||||||
|
diff --git a/libselinux/src/compute_user.c b/libselinux/src/compute_user.c
|
||||||
|
index 3b39ddd..af20735 100644
|
||||||
|
--- a/libselinux/src/compute_user.c
|
||||||
|
+++ b/libselinux/src/compute_user.c
|
||||||
|
@@ -24,6 +24,11 @@ int security_compute_user_raw(const security_context_t scon,
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (! scon) {
|
||||||
|
+ errno=EINVAL;
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
snprintf(path, sizeof path, "%s/user", selinux_mnt);
|
||||||
|
fd = open(path, O_RDWR);
|
||||||
|
if (fd < 0)
|
||||||
diff --git a/libselinux/src/fsetfilecon.c b/libselinux/src/fsetfilecon.c
|
diff --git a/libselinux/src/fsetfilecon.c b/libselinux/src/fsetfilecon.c
|
||||||
index 9963f7a..37f9d74 100644
|
index 9963f7a..37f9d74 100644
|
||||||
--- a/libselinux/src/fsetfilecon.c
|
--- a/libselinux/src/fsetfilecon.c
|
||||||
@ -352,7 +500,7 @@ index 9963f7a..37f9d74 100644
|
|||||||
security_context_t ccontext = NULL;
|
security_context_t ccontext = NULL;
|
||||||
int err = errno;
|
int err = errno;
|
||||||
diff --git a/libselinux/src/load_policy.c b/libselinux/src/load_policy.c
|
diff --git a/libselinux/src/load_policy.c b/libselinux/src/load_policy.c
|
||||||
index e419f1a..fdeca93 100644
|
index e419f1a..275672d 100644
|
||||||
--- a/libselinux/src/load_policy.c
|
--- a/libselinux/src/load_policy.c
|
||||||
+++ b/libselinux/src/load_policy.c
|
+++ b/libselinux/src/load_policy.c
|
||||||
@@ -16,6 +16,82 @@
|
@@ -16,6 +16,82 @@
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Summary: SELinux library and simple utilities
|
Summary: SELinux library and simple utilities
|
||||||
Name: libselinux
|
Name: libselinux
|
||||||
Version: 2.2.2
|
Version: 2.2.2
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
License: Public Domain
|
License: Public Domain
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
Source: %{name}-%{version}.tgz
|
Source: %{name}-%{version}.tgz
|
||||||
@ -213,9 +213,9 @@ rm -rf %{buildroot}
|
|||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%{_libdir}/libselinux.so
|
%{_libdir}/libselinux.so
|
||||||
%{_libdir}/pkgconfig/libselinux.pc
|
%{_libdir}/pkgconfig/libselinux.pc
|
||||||
|
%dir %{_libdir}/golang/src/pkg/github.com/selinux
|
||||||
|
%{_libdir}/golang/src/pkg/github.com/selinux/selinux.go
|
||||||
%dir %{_includedir}/selinux
|
%dir %{_includedir}/selinux
|
||||||
%dir %{_datadir}/gocode/src/selinux
|
|
||||||
%{_datadir}/gocode/src/selinux/selinux.go
|
|
||||||
%{_includedir}/selinux/*
|
%{_includedir}/selinux/*
|
||||||
%{_mandir}/man3/*
|
%{_mandir}/man3/*
|
||||||
|
|
||||||
@ -243,6 +243,10 @@ rm -rf %{buildroot}
|
|||||||
%{ruby_sitearch}/selinux.so
|
%{ruby_sitearch}/selinux.so
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 24 2014 Dan Walsh <dwalsh@redhat.com> - 2.2.2-3
|
||||||
|
- Move selinux.go to /usr/lib64/golang/src/pkg/github.com/selinux/selinux.go
|
||||||
|
- Add Int_to_mcs function to generate MCS labels from integers.
|
||||||
|
|
||||||
* Tue Jan 14 2014 Dan Walsh <dwalsh@redhat.com> - 2.2.2-2
|
* Tue Jan 14 2014 Dan Walsh <dwalsh@redhat.com> - 2.2.2-2
|
||||||
- Add ghost flag for /var/run/setrans
|
- Add ghost flag for /var/run/setrans
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user