0397b472b7
Handle duplicate file context regexes as a fatal error from Stephen Smalley. This prevents adding them via semanage. Fix audit2why shadowed variables from Stephen Smalley. Note that freecon NULL is legal in man page from Karel Zak.
257 lines
7.5 KiB
Diff
257 lines
7.5 KiB
Diff
diff --exclude-from=exclude -N -u -r nsalibselinux/Makefile libselinux-2.0.69/Makefile
|
|
--- nsalibselinux/Makefile 2008-06-12 23:25:14.000000000 -0400
|
|
+++ libselinux-2.0.69/Makefile 2008-07-29 14:21:44.000000000 -0400
|
|
@@ -29,6 +29,9 @@
|
|
pywrap:
|
|
$(MAKE) -C src pywrap
|
|
|
|
+rubywrap:
|
|
+ $(MAKE) -C src rubywrap
|
|
+
|
|
install:
|
|
$(MAKE) -C include install
|
|
$(MAKE) -C src install
|
|
@@ -38,6 +41,9 @@
|
|
install-pywrap:
|
|
$(MAKE) -C src install-pywrap
|
|
|
|
+install-rubywrap:
|
|
+ $(MAKE) -C src install-rubywrap
|
|
+
|
|
relabel:
|
|
$(MAKE) -C src relabel
|
|
|
|
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man8/selinuxconlist.8 libselinux-2.0.69/man/man8/selinuxconlist.8
|
|
--- nsalibselinux/man/man8/selinuxconlist.8 1969-12-31 19:00:00.000000000 -0500
|
|
+++ libselinux-2.0.69/man/man8/selinuxconlist.8 2008-07-29 14:07:37.000000000 -0400
|
|
@@ -0,0 +1,18 @@
|
|
+.TH "selinuxconlist" "1" "7 May 2008" "dwalsh@redhat.com" "SELinux Command Line documentation"
|
|
+.SH "NAME"
|
|
+selinuxconlist \- list all SELinux context reachable for user
|
|
+.SH "SYNOPSIS"
|
|
+.B selinuxconlist [-l level] user [context]
|
|
+
|
|
+.SH "DESCRIPTION"
|
|
+.B selinuxconlist
|
|
+reports the list of context reachable for user from the current context or specified context
|
|
+
|
|
+.B \-l level
|
|
+mcs/mls level
|
|
+
|
|
+.SH AUTHOR
|
|
+This manual page was written by Dan Walsh <dwalsh@redhat.com>.
|
|
+
|
|
+.SH "SEE ALSO"
|
|
+secon(8), selinuxdefcon(8)
|
|
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man8/selinuxdefcon.8 libselinux-2.0.69/man/man8/selinuxdefcon.8
|
|
--- nsalibselinux/man/man8/selinuxdefcon.8 1969-12-31 19:00:00.000000000 -0500
|
|
+++ libselinux-2.0.69/man/man8/selinuxdefcon.8 2008-07-29 14:07:37.000000000 -0400
|
|
@@ -0,0 +1,19 @@
|
|
+.TH "selinuxdefcon" "1" "7 May 2008" "dwalsh@redhat.com" "SELinux Command Line documentation"
|
|
+.SH "NAME"
|
|
+selinuxdefcon \- list default SELinux context for user
|
|
+
|
|
+.SH "SYNOPSIS"
|
|
+.B selinuxdefcon [-l level] user [fromcon]
|
|
+
|
|
+.SH "DESCRIPTION"
|
|
+.B seconlist
|
|
+reports the default context for the specified user from current context or specified context
|
|
+
|
|
+.B \-l level
|
|
+mcs/mls level
|
|
+
|
|
+.SH AUTHOR
|
|
+This manual page was written by Dan Walsh <dwalsh@redhat.com>.
|
|
+
|
|
+.SH "SEE ALSO"
|
|
+secon(8), selinuxconlist(8)
|
|
diff --exclude-from=exclude -N -u -r nsalibselinux/src/Makefile libselinux-2.0.69/src/Makefile
|
|
--- nsalibselinux/src/Makefile 2008-06-22 09:40:25.000000000 -0400
|
|
+++ libselinux-2.0.69/src/Makefile 2008-07-29 14:15:39.000000000 -0400
|
|
@@ -7,16 +7,24 @@
|
|
PYINC ?= /usr/include/$(PYLIBVER)
|
|
PYLIB ?= /usr/lib/$(PYLIBVER)
|
|
PYTHONLIBDIR ?= $(LIBDIR)/$(PYLIBVER)
|
|
+RUBYLIBVER ?= $(shell ruby -e 'print RUBY_VERSION.split(".")[0..1].join(".")')
|
|
+RUBYPLATFORM ?= $(shell ruby -e 'print RUBY_PLATFORM')
|
|
+RUBYINC ?= $(LIBDIR)/ruby/$(RUBYLIBVER)/$(RUBYPLATFORM)
|
|
+RUBYINSTALL ?= $(LIBDIR)/ruby/site_ruby/$(RUBYLIBVER)/$(RUBYPLATFORM)
|
|
|
|
LIBVERSION = 1
|
|
|
|
LIBA=libselinux.a
|
|
TARGET=libselinux.so
|
|
SWIGIF= selinuxswig_python.i
|
|
+SWIGRUBYIF= selinuxswig_ruby.i
|
|
SWIGCOUT= selinuxswig_wrap.c
|
|
+SWIGRUBYCOUT= selinuxswig_ruby_wrap.c
|
|
SWIGLOBJ:= $(patsubst %.c,%.lo,$(SWIGCOUT))
|
|
+SWIGRUBYLOBJ:= $(patsubst %.c,%.lo,$(SWIGRUBYCOUT))
|
|
SWIGSO=_selinux.so
|
|
SWIGFILES=$(SWIGSO) selinux.py
|
|
+SWIGRUBYSO=_rubyselinux.so
|
|
LIBSO=$(TARGET).$(LIBVERSION)
|
|
AUDIT2WHYSO=audit2why.so
|
|
|
|
@@ -29,7 +37,9 @@
|
|
ifeq ($(DISABLE_RPM),y)
|
|
UNUSED_SRCS+=rpm.c
|
|
endif
|
|
-SRCS= $(filter-out $(UNUSED_SRCS), $(filter-out audit2why.c $(SWIGCOUT),$(wildcard *.c)))
|
|
+
|
|
+GENERATED=$(SWIGCOUT) $(SWIGRUBYCOUT)
|
|
+SRCS= $(filter-out $(UNUSED_SRCS), $(filter-out audit2why.c $(GENERATED),$(wildcard *.c)))
|
|
|
|
OBJS= $(patsubst %.c,%.o,$(SRCS))
|
|
LOBJS= $(patsubst %.c,%.lo,$(SRCS))
|
|
@@ -44,12 +54,14 @@
|
|
|
|
SWIG = swig -Wall -python -o $(SWIGCOUT) -outdir ./
|
|
|
|
-GENERATED=$(SWIGCOUT)
|
|
+SWIGRUBY = swig -Wall -ruby -o $(SWIGRUBYCOUT) -outdir ./
|
|
|
|
all: $(LIBA) $(LIBSO)
|
|
|
|
pywrap: all $(SWIGSO) $(AUDIT2WHYSO)
|
|
|
|
+rubywrap: all $(SWIGRUBYSO)
|
|
+
|
|
$(LIBA): $(OBJS)
|
|
$(AR) rcs $@ $^
|
|
$(RANLIB) $@
|
|
@@ -57,9 +69,15 @@
|
|
$(SWIGLOBJ): $(SWIGCOUT)
|
|
$(CC) $(filter-out -Werror,$(CFLAGS)) -I$(PYINC) -fPIC -DSHARED -c -o $@ $<
|
|
|
|
+$(SWIGRUBYLOBJ): $(SWIGRUBYCOUT)
|
|
+ $(CC) $(filter-out -Werror,$(CFLAGS)) -I$(RUBYINC) -fPIC -DSHARED -c -o $@ $<
|
|
+
|
|
$(SWIGSO): $(SWIGLOBJ)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $< -L. -lselinux -L$(LIBDIR) -Wl,-soname,$@
|
|
|
|
+$(SWIGRUBYSO): $(SWIGRUBYLOBJ)
|
|
+ $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lselinux -L$(LIBDIR) -Wl,-soname,$@
|
|
+
|
|
$(LIBSO): $(LOBJS)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -ldl -L$(LIBDIR) -Wl,-soname,$(LIBSO),-z,defs,-z,relro
|
|
ln -sf $@ $(TARGET)
|
|
@@ -79,6 +97,9 @@
|
|
$(SWIGCOUT): $(SWIGIF)
|
|
$(SWIG) $^
|
|
|
|
+$(SWIGRUBYCOUT): $(SWIGRUBYIF)
|
|
+ $(SWIGRUBY) $^
|
|
+
|
|
swigify: $(SWIGIF)
|
|
$(SWIG) $^
|
|
|
|
@@ -95,6 +116,10 @@
|
|
install -m 755 $(AUDIT2WHYSO) $(PYTHONLIBDIR)/site-packages/selinux
|
|
install -m 644 selinux.py $(PYTHONLIBDIR)/site-packages/selinux/__init__.py
|
|
|
|
+install-rubywrap: rubywrap
|
|
+ test -d $(RUBYINSTALL) || install -m 755 -d $(RUBYINSTALL)
|
|
+ install -m 755 $(SWIGRUBYSO) $(RUBYINSTALL)/selinux.so
|
|
+
|
|
relabel:
|
|
/sbin/restorecon $(SHLIBDIR)/$(LIBSO)
|
|
|
|
@@ -102,7 +127,7 @@
|
|
-rm -f $(OBJS) $(LOBJS) $(LIBA) $(LIBSO) $(SWIGLOBJ) $(SWIGSO) $(TARGET) $(AUDIT2WHYSO) *.o *.lo *~
|
|
|
|
distclean: clean
|
|
- rm -f $(SWIGCOUT) $(SWIGFILES)
|
|
+ rm -f $(GENERATED) $(SWIGFILES)
|
|
|
|
indent:
|
|
../../scripts/Lindent $(filter-out $(GENERATED),$(wildcard *.[ch]))
|
|
diff --exclude-from=exclude -N -u -r nsalibselinux/src/callbacks.c libselinux-2.0.69/src/callbacks.c
|
|
--- nsalibselinux/src/callbacks.c 2008-06-12 23:25:14.000000000 -0400
|
|
+++ libselinux-2.0.69/src/callbacks.c 2008-07-29 14:07:37.000000000 -0400
|
|
@@ -16,6 +16,7 @@
|
|
{
|
|
int rc;
|
|
va_list ap;
|
|
+ if (is_selinux_enabled() == 0) return 0;
|
|
va_start(ap, fmt);
|
|
rc = vfprintf(stderr, fmt, ap);
|
|
va_end(ap);
|
|
diff --exclude-from=exclude -N -u -r nsalibselinux/src/matchpathcon.c libselinux-2.0.69/src/matchpathcon.c
|
|
--- nsalibselinux/src/matchpathcon.c 2008-06-12 23:25:14.000000000 -0400
|
|
+++ libselinux-2.0.69/src/matchpathcon.c 2008-07-29 14:07:37.000000000 -0400
|
|
@@ -2,6 +2,7 @@
|
|
#include <string.h>
|
|
#include <errno.h>
|
|
#include <stdio.h>
|
|
+#include <syslog.h>
|
|
#include "selinux_internal.h"
|
|
#include "label_internal.h"
|
|
#include "callbacks.h"
|
|
@@ -57,7 +58,7 @@
|
|
{
|
|
va_list ap;
|
|
va_start(ap, fmt);
|
|
- vfprintf(stderr, fmt, ap);
|
|
+ vsyslog(LOG_ERR, fmt, ap);
|
|
va_end(ap);
|
|
}
|
|
|
|
diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig_ruby.i libselinux-2.0.69/src/selinuxswig_ruby.i
|
|
--- nsalibselinux/src/selinuxswig_ruby.i 1969-12-31 19:00:00.000000000 -0500
|
|
+++ libselinux-2.0.69/src/selinuxswig_ruby.i 2008-07-29 14:17:14.000000000 -0400
|
|
@@ -0,0 +1,52 @@
|
|
+/* Author: Dan Walsh
|
|
+ Based on selinuxswig_python.i by James Athey
|
|
+ */
|
|
+
|
|
+%module selinux
|
|
+%{
|
|
+ #include "selinux/selinux.h"
|
|
+%}
|
|
+
|
|
+/* return a sid along with the result */
|
|
+%typemap(argout) (security_id_t * sid) {
|
|
+ if (*$1) {
|
|
+ %append_output(SWIG_NewPointerObj(*$1, $descriptor(security_id_t), 0));
|
|
+ }
|
|
+}
|
|
+
|
|
+%typemap(in,numinputs=0) security_id_t *(security_id_t temp) {
|
|
+ $1 = &temp;
|
|
+}
|
|
+
|
|
+%typemap(in,noblock=1,numinputs=0) security_context_t * (security_context_t temp = 0) {
|
|
+ $1 = &temp;
|
|
+}
|
|
+%typemap(freearg,match="in") security_context_t * "";
|
|
+%typemap(argout,noblock=1) security_context_t * {
|
|
+ if (*$1) {
|
|
+ %append_output(SWIG_FromCharPtr(*$1));
|
|
+ freecon(*$1);
|
|
+ }
|
|
+}
|
|
+
|
|
+%typemap(in,noblock=1,numinputs=0) char ** (char * temp = 0) {
|
|
+ $1 = &temp;
|
|
+}
|
|
+%typemap(freearg,match="in") char ** "";
|
|
+%typemap(argout,noblock=1) char ** {
|
|
+ if (*$1) {
|
|
+ %append_output(SWIG_FromCharPtr(*$1));
|
|
+ free(*$1);
|
|
+ }
|
|
+}
|
|
+
|
|
+%typemap(freearg,match="in") char * const [] {
|
|
+ int i = 0;
|
|
+ while($1[i]) {
|
|
+ free($1[i]);
|
|
+ i++;
|
|
+ }
|
|
+ free($1);
|
|
+}
|
|
+
|
|
+%include "selinuxswig.i"
|