Compare commits

...
Sign in to create a new pull request.

8 commits

Author SHA1 Message Date
Fedora Release Engineering
fe0a83c8d8 dist-git conversion 2010-07-29 12:36:30 +00:00
KaiGai Kohei
852d03216f detach dependency to minor updates 2010-03-18 01:17:49 +00:00
KaiGai Kohei
2ecceffd1d upgrade base pgsql v8.3.8->v8.3.9 2009-12-22 08:18:24 +00:00
Bill Nottingham
61bf27784f Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:38:42 +00:00
KaiGai Kohei
c3eae44511 upgrade base PostgreSQL v8.3.7->8.3.8 2009-09-10 12:27:20 +00:00
KaiGai Kohei
8d23ee0487 backport features and bugfixes from v8.4devel tree 2009-06-09 07:30:55 +00:00
KaiGai Kohei
b299b04e8b bugfix: /etc/init.d/sepostgresql initdb didn't work correctly 2009-04-17 00:31:18 +00:00
Jesse Keating
66e87cc858 Initialize branch F-11 for sepostgresql 2009-04-15 05:32:29 +00:00
9 changed files with 3267 additions and 2002 deletions

View file

@ -1 +0,0 @@
postgresql-8.3.7.tar.bz2

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
postgresql-8.3.9.tar.bz2

View file

@ -1,21 +0,0 @@
# Makefile for source rpm: sepostgresql
# $Id$
NAME := sepostgresql
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

File diff suppressed because it is too large Load diff

View file

@ -20,8 +20,8 @@ diff -rpNU3 base/src/test/regress/expected/sanity_check.out sepgsql-new/src/test
-- another sanity check: every system catalog that has OIDs should have
diff -rpNU3 base/src/test/sepgsql/Makefile sepgsql-new/src/test/sepgsql/Makefile
--- base/src/test/sepgsql/Makefile 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/Makefile 2009-03-15 17:38:39.000000000 +0900
@@ -0,0 +1,65 @@
+++ sepgsql-new/src/test/sepgsql/Makefile 2009-06-10 21:37:54.000000000 +0900
@@ -0,0 +1,62 @@
+# ----------------------------------------------------
+# Makefile for SE-PostgreSQL testcases
+# ----------------------------------------------------
@ -46,7 +46,7 @@ diff -rpNU3 base/src/test/sepgsql/Makefile sepgsql-new/src/test/sepgsql/Makefile
+
+results.diff: $(TESTCASES:sql/%.sql=results/%.diff)
+ @for x in $^; do cat $$x >> $@; done
+ @test -s $@ && echo "HINT: See $@ to confirm errors" || :
+ @test -s $@ && echo "HINT: See $(shell pwd)/$@ to confirm errors" || :
+
+results/%.diff: sql/%.sql
+ @./launch_psql $(PSQL) -a $(DBNAME) < $< >& $(@:%.diff=%.out)
@ -73,9 +73,9 @@ diff -rpNU3 base/src/test/sepgsql/Makefile sepgsql-new/src/test/sepgsql/Makefile
+ @$(PSQL) -qt -c 'SHOW sepostgresql' -d $(DBNAME) 2>/dev/null | grep -q on || \
+ (echo "HINT: database \"$(DBNAME)\" is not available"; \
+ echo "HINT: SE-PostgreSQL may not be available on server"; exit 1)
+ @$(GETSEBOOL) allow_user_postgresql_connect | grep -q on || \
+ @$(GETSEBOOL) allow_user_postgresql_connect | grep -q 'on$$' || \
+ (echo "HINT: check allow_user_postgresql_connect boolean"; exit 1)
+ @$(GETSEBOOL) sepgsql_regression_test_mode | grep -q on || \
+ @$(GETSEBOOL) sepgsql_regression_test_mode | grep -q 'on$$' || \
+ (echo "HINT: check sepgsql_regression_test_mode boolean"; \
+ echo "HINT: check sepostgresql-devel.pp installed"; exit 1)
+ @$(RUNCON) -t sepgsql_test_t -l s0-s0:c0.c15 \
@ -83,15 +83,14 @@ diff -rpNU3 base/src/test/sepgsql/Makefile sepgsql-new/src/test/sepgsql/Makefile
+ (echo "HINT: /sbin/restorecon -R <prefix> and restart"; \
+ echo "HINT: user shell should have 's0-s0:c0.c15' range, at least"; \
+ echo " semanage enables to set up it"; exit 1)
+ @test -x /etc/init.d/mcstrans && /etc/init.d/mcstrans status >& /dev/null && \
+ (echo "HINT: stop mcstrans daemon"; exit 1) || \
+ (test $$? -eq 3 && exit 0 || exit 1)
+ @echo "PASS: check runtime environment"
diff -rpNU3 base/src/test/sepgsql/expected/basic.out sepgsql-new/src/test/sepgsql/expected/basic.out
--- base/src/test/sepgsql/expected/basic.out 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/expected/basic.out 2009-03-15 17:38:39.000000000 +0900
@@ -0,0 +1,108 @@
+++ sepgsql-new/src/test/sepgsql/expected/basic.out 2009-06-10 21:37:54.000000000 +0900
@@ -0,0 +1,114 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+-----------------------------------------------------
@ -141,6 +140,8 @@ diff -rpNU3 base/src/test/sepgsql/expected/basic.out sepgsql-new/src/test/sepgsq
+) inherits(t2);
+CREATE TABLE
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+---------------------------------------------------
@ -148,7 +149,7 @@ diff -rpNU3 base/src/test/sepgsql/expected/basic.out sepgsql-new/src/test/sepgsq
+(1 row)
+
+SELECT * FROM t1; -- to be denied
+ERROR: SELinux: denied { select } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:sepgsql_secret_table_t:s0 tclass=db_column name=t1.c
+ERROR: SELinux: security policy violation
+SELECT a, b FROM t1;
+ a | b
+---+-----
@ -157,13 +158,13 @@ diff -rpNU3 base/src/test/sepgsql/expected/basic.out sepgsql-new/src/test/sepgsq
+(2 rows)
+
+SELECT COUNT(*) FROM t1 WHERE c; -- to be denied
+ERROR: SELinux: denied { select } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:sepgsql_secret_table_t:s0 tclass=db_column name=t1.c
+ERROR: SELinux: security policy violation
+UPDATE t1 SET b = 'ccc'; -- to be denied
+ERROR: SELinux: denied { update } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:sepgsql_ro_table_t:s0 tclass=db_column name=t1.b
+ERROR: SELinux: security policy violation
+UPDATE t1 SET a = a + 2;
+UPDATE 2
+INSERT INTO t1 VALUES (5, 'eee', true); -- to be denied
+ERROR: SELinux: denied { insert } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:sepgsql_ro_table_t:s0 tclass=db_column name=t1.b
+ERROR: SELinux: security policy violation
+INSERT INTO t1 VALUES (5);
+INSERT 0 1
+SELECT * FROM t2;
@ -177,13 +178,15 @@ diff -rpNU3 base/src/test/sepgsql/expected/basic.out sepgsql-new/src/test/sepgsq
+(0 rows)
+
+SELECT t3 FROM t3; -- to be denied
+ERROR: SELinux: denied { select } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:sepgsql_table_t:s0:c1 tclass=db_column name=t3.x
+ERROR: SELinux: security policy violation
+SELECT 1 FROM t3;
+ ?column?
+----------
+(0 rows)
+
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c1
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+---------------------------------------------------
@ -191,9 +194,9 @@ diff -rpNU3 base/src/test/sepgsql/expected/basic.out sepgsql-new/src/test/sepgsq
+(1 row)
+
+SELECT * FROM t2; -- to be denied
+ERROR: SELinux: denied { select } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c1 tcontext=unconfined_u:object_r:sepgsql_table_t:s0:c0 tclass=db_table name=t2
+ERROR: SELinux: security policy violation
+SELECT t2 FROM t2; -- to be denied
+ERROR: SELinux: denied { select } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c1 tcontext=unconfined_u:object_r:sepgsql_table_t:s0:c0 tclass=db_table name=t2
+ERROR: SELinux: security policy violation
+SELECT t3 FROM t3;
+ t3
+----
@ -201,9 +204,11 @@ diff -rpNU3 base/src/test/sepgsql/expected/basic.out sepgsql-new/src/test/sepgsq
+
diff -rpNU3 base/src/test/sepgsql/expected/copy_stmt.out sepgsql-new/src/test/sepgsql/expected/copy_stmt.out
--- base/src/test/sepgsql/expected/copy_stmt.out 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/expected/copy_stmt.out 2009-03-15 17:38:39.000000000 +0900
@@ -0,0 +1,90 @@
+++ sepgsql-new/src/test/sepgsql/expected/copy_stmt.out 2009-06-10 21:37:54.000000000 +0900
@@ -0,0 +1,94 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+-----------------------------------------------------
@ -256,6 +261,8 @@ diff -rpNU3 base/src/test/sepgsql/expected/copy_stmt.out sepgsql-new/src/test/se
+INSERT INTO t2 VALUES (1, 'sss'), (2, 'ttt');
+INSERT 0 2
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+---------------------------------------------------
@ -269,11 +276,11 @@ diff -rpNU3 base/src/test/sepgsql/expected/copy_stmt.out sepgsql-new/src/test/se
+COPY t1 TO '/tmp/sepgsql_test_copy_1';
+COPY 4
+COPY t1 TO '/tmp/sepgsql_test_copy_2'; -- to be denied
+ERROR: SELinux: denied { write } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:postgresql_db_t:s0 tclass=file name=/tmp/sepgsql_test_copy_2
+ERROR: SELinux: security policy violation
+COPY t2 TO stdout; -- to be denied
+ERROR: SELinux: denied { select } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:sepgsql_secret_table_t:s0 tclass=db_column name=t2.y
+ERROR: SELinux: security policy violation
+COPY t2 FROM stdin; -- to be denied
+ERROR: SELinux: denied { insert } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:sepgsql_secret_table_t:s0 tclass=db_column name=t2.y
+ERROR: SELinux: security policy violation
+COPY t2 (x) TO stdout;
+1
+2
@ -281,7 +288,7 @@ diff -rpNU3 base/src/test/sepgsql/expected/copy_stmt.out sepgsql-new/src/test/se
+2
+COPY t3 TO stdout;
+COPY t3 FROM '/tmp/sepgsql_test_copy_1'; -- to be denied
+ERROR: SELinux: denied { insert } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:sepgsql_ro_table_t:s0 tclass=db_table name=t3
+ERROR: SELinux: security policy violation
+COPY t1 FROM '/tmp/sepgsql_test_copy_1';
+COPY 4
+COPY t1 TO stdout;
@ -295,9 +302,11 @@ diff -rpNU3 base/src/test/sepgsql/expected/copy_stmt.out sepgsql-new/src/test/se
+4 ddd
diff -rpNU3 base/src/test/sepgsql/expected/enhanced_ddl_stmt.out sepgsql-new/src/test/sepgsql/expected/enhanced_ddl_stmt.out
--- base/src/test/sepgsql/expected/enhanced_ddl_stmt.out 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/expected/enhanced_ddl_stmt.out 2009-03-15 17:38:39.000000000 +0900
@@ -0,0 +1,180 @@
+++ sepgsql-new/src/test/sepgsql/expected/enhanced_ddl_stmt.out 2009-06-19 15:02:12.000000000 +0900
@@ -0,0 +1,182 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+-----------------------------------------------------
@ -384,12 +393,12 @@ diff -rpNU3 base/src/test/sepgsql/expected/enhanced_ddl_stmt.out sepgsql-new/src
+ a int,
+ b text
+) SECURITY_CONTEXT = 'unconfined_u:object_r:invalid_label_t:s0'; -- to be failed
+ERROR: invalid security label: unconfined_u:object_r:invalid_label_t:s0
+ERROR: Invalid security context: "unconfined_u:object_r:invalid_label_t:s0"
+CREATE TABLE t4 (
+ a int,
+ b text
+) SECURITY_CONTEXT = 'unconfined_u:object_r:sepgsql_proc_t:s0'; -- to be denied
+ERROR: SELinux: denied { create } scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15 tcontext=unconfined_u:object_r:sepgsql_proc_t:s0 tclass=db_table name=t4
+ERROR: SELinux: security policy violation
+-- ALTER TABLE with SECURITY_CONTEXT clause
+ALTER TABLE t2 SECURITY_CONTEXT = 'unconfined_u:object_r:sepgsql_secret_table_t:s0';
+ALTER TABLE
@ -442,20 +451,20 @@ diff -rpNU3 base/src/test/sepgsql/expected/enhanced_ddl_stmt.out sepgsql-new/src
+ LANGUAGE 'sql'
+ SECURITY_CONTEXT = 'unconfined_u:object_r:invalid_label_t:s0'
+ AS 'SELECT $1 + $1'; -- to be failed
+ERROR: invalid security label: unconfined_u:object_r:invalid_label_t:s0
+ERROR: Invalid security context: "unconfined_u:object_r:invalid_label_t:s0"
+CREATE FUNCTION f2 (int) RETURNS int
+ LANGUAGE 'sql'
+ SECURITY_CONTEXT = 'unconfined_u:object_r:sepgsql_proc_t:s0:c16'
+ AS 'SELECT $1 + $1'; -- to be denied
+ERROR: SELinux: denied { create } scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15 tcontext=unconfined_u:object_r:sepgsql_proc_t:s0:c16 tclass=db_procedure name=f2
+ERROR: SELinux: security policy violation
+CREATE FUNCTION f2 (int) RETURNS int
+ LANGUAGE 'sql'
+ AS 'SELECT $1 + $1';
+CREATE FUNCTION
+SELECT proname, security_context FROM pg_proc WHERE oid = 'f2'::regproc;
+ proname | security_context
+---------+-----------------------------------------
+ f2 | unconfined_u:object_r:sepgsql_proc_t:s0
+ proname | security_context
+---------+----------------------------------------------
+ f2 | unconfined_u:object_r:sepgsql_proc_exec_t:s0
+(1 row)
+
+-- ALTER FUNCTION with SECURITY_CONTEXT clause
@ -470,18 +479,20 @@ diff -rpNU3 base/src/test/sepgsql/expected/enhanced_ddl_stmt.out sepgsql-new/src
+
+ALTER FUNCTION f2(int)
+ SECURITY_CONTEXT = 'unconfined_u:object_r:sepgsql_proc_t:s0:c16'; -- to be denied
+ERROR: SELinux: denied { relabelto } scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15 tcontext=unconfined_u:object_r:sepgsql_proc_t:s0:c16 tclass=db_procedure name=f2
+ERROR: SELinux: security policy violation
+SELECT proname, security_context FROM pg_proc WHERE oid = 'f2'::regproc;
+ proname | security_context
+---------+-----------------------------------------
+ f2 | unconfined_u:object_r:sepgsql_proc_t:s0
+ proname | security_context
+---------+----------------------------------------------
+ f2 | unconfined_u:object_r:sepgsql_proc_exec_t:s0
+(1 row)
+
diff -rpNU3 base/src/test/sepgsql/expected/join_query.out sepgsql-new/src/test/sepgsql/expected/join_query.out
--- base/src/test/sepgsql/expected/join_query.out 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/expected/join_query.out 2009-03-15 17:38:39.000000000 +0900
@@ -0,0 +1,85 @@
+++ sepgsql-new/src/test/sepgsql/expected/join_query.out 2009-06-10 21:37:54.000000000 +0900
@@ -0,0 +1,89 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+-----------------------------------------------------
@ -538,6 +549,8 @@ diff -rpNU3 base/src/test/sepgsql/expected/join_query.out sepgsql-new/src/test/s
+INSERT INTO t2 VALUES (1, 'sss'), (5, 'ttt');
+INSERT 0 2
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+---------------------------------------------------
@ -545,7 +558,7 @@ diff -rpNU3 base/src/test/sepgsql/expected/join_query.out sepgsql-new/src/test/s
+(1 row)
+
+SELECT * FROM t1 JOIN t2 ON a = x; -- to be denied
+ERROR: SELinux: denied { select } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:sepgsql_secret_table_t:s0 tclass=db_column name=t1.c
+ERROR: SELinux: security policy violation
+SELECT a, b, y FROM t1 JOIN t2 ON a = x;
+ a | b | y
+---+-----+-----
@ -557,7 +570,7 @@ diff -rpNU3 base/src/test/sepgsql/expected/join_query.out sepgsql-new/src/test/s
+(5 rows)
+
+SELECT a, b, y FROM t1 JOIN t2 ON c = x; -- to be denied
+ERROR: SELinux: denied { select } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:sepgsql_secret_table_t:s0 tclass=db_column name=t1.c
+ERROR: SELinux: security policy violation
+SELECT COUNT(*) FROM t1 JOIN t2 ON a = x;
+ count
+-------
@ -565,12 +578,14 @@ diff -rpNU3 base/src/test/sepgsql/expected/join_query.out sepgsql-new/src/test/s
+(1 row)
+
+SELECT j FROM (t1 JOIN t2 ON a = x) AS j; -- to be denied
+ERROR: SELinux: denied { select } scontext=unconfined_u:unconfined_r:sepgsql_test_t:s0-s0:c0 tcontext=unconfined_u:object_r:sepgsql_secret_table_t:s0 tclass=db_column name=t1.c
+ERROR: SELinux: security policy violation
diff -rpNU3 base/src/test/sepgsql/expected/large_object.out sepgsql-new/src/test/sepgsql/expected/large_object.out
--- base/src/test/sepgsql/expected/large_object.out 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/expected/large_object.out 2009-03-15 17:38:39.000000000 +0900
@@ -0,0 +1,293 @@
+++ sepgsql-new/src/test/sepgsql/expected/large_object.out 2009-06-10 21:37:54.000000000 +0900
@@ -0,0 +1,299 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+-----------------------------------------------------
@ -623,6 +638,8 @@ diff -rpNU3 base/src/test/sepgsql/expected/large_object.out sepgsql-new/src/test
+(1 row)
+
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:sepgsql_test_t:s0:c0
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+------------------------------------------------
@ -805,6 +822,8 @@ diff -rpNU3 base/src/test/sepgsql/expected/large_object.out sepgsql-new/src/test
+COMMIT;
+COMMIT
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+-----------------------------------------------------
@ -832,23 +851,23 @@ diff -rpNU3 base/src/test/sepgsql/expected/large_object.out sepgsql-new/src/test
+(2 rows)
+
+SELECT lo_get_security(loid) FROM lolabel;
+ lo_get_security
+---------------------------------------------------------
+ lo_get_security
+-------------------------------------------------
+ system_u:object_r:sepgsql_blob_t:s0:c4
+ system_u:object_r:sepgsql_blob_t:s0:c4
+ system_u:object_r:sepgsql_secret_blob_t:s0
+ unconfined_u:object_r:sepgsql_test_sepgsql_blob_t:s0:c0
+ unconfined_u:object_r:user_sepgsql_blob_t:s0:c0
+(4 rows)
+
+SELECT security_context, lo_label(loid) AS label, count(*)
+ FROM pg_largeobject WHERE loid in (SELECT loid FROM lolabel)
+ GROUP BY security_context, loid ORDER BY label;
+ security_context | label | count
+---------------------------------------------------------+----------+-------
+ unconfined_u:object_r:sepgsql_test_sepgsql_blob_t:s0:c0 | local | 1
+ system_u:object_r:sepgsql_blob_t:s0:c4 | normal | 10
+ system_u:object_r:sepgsql_blob_t:s0:c4 | readonly | 10
+ system_u:object_r:sepgsql_secret_blob_t:s0 | secret | 10
+ security_context | label | count
+-------------------------------------------------+----------+-------
+ unconfined_u:object_r:user_sepgsql_blob_t:s0:c0 | local | 1
+ system_u:object_r:sepgsql_blob_t:s0:c4 | normal | 10
+ system_u:object_r:sepgsql_blob_t:s0:c4 | readonly | 10
+ system_u:object_r:sepgsql_secret_blob_t:s0 | secret | 10
+(4 rows)
+
+ROLLBACK;
@ -865,9 +884,11 @@ diff -rpNU3 base/src/test/sepgsql/expected/large_object.out sepgsql-new/src/test
+
diff -rpNU3 base/src/test/sepgsql/expected/row_level.out sepgsql-new/src/test/sepgsql/expected/row_level.out
--- base/src/test/sepgsql/expected/row_level.out 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/expected/row_level.out 2009-03-15 17:38:39.000000000 +0900
@@ -0,0 +1,131 @@
+++ sepgsql-new/src/test/sepgsql/expected/row_level.out 2009-06-10 21:37:54.000000000 +0900
@@ -0,0 +1,136 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+-----------------------------------------------------
@ -936,6 +957,8 @@ diff -rpNU3 base/src/test/sepgsql/expected/row_level.out sepgsql-new/src/test/se
+(3 rows)
+
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:sepgsql_test_t:s0:c0
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+------------------------------------------------
@ -996,13 +1019,16 @@ diff -rpNU3 base/src/test/sepgsql/expected/row_level.out sepgsql-new/src/test/se
+CONTEXT: SQL statement "SELECT 1 FROM ONLY "public"."t2" x WHERE $1 OPERATOR(pg_catalog.=) "x" FOR SHARE OF x"
+DELETE FROM t1 WHERE a not in (SELECT x FROM t2); -- to be failed
+ERROR: SELinux: security policy violation
+CONTEXT: SQL statement "SELECT 1 FROM ONLY "public"."t2" x WHERE $1 OPERATOR(pg_catalog.=) "x" FOR SHARE OF x"
+DELETE FROM t1 WHERE a = 7;
+DELETE 1
diff -rpNU3 base/src/test/sepgsql/expected/security_label.out sepgsql-new/src/test/sepgsql/expected/security_label.out
--- base/src/test/sepgsql/expected/security_label.out 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/expected/security_label.out 2009-03-15 17:38:39.000000000 +0900
@@ -0,0 +1,127 @@
+++ sepgsql-new/src/test/sepgsql/expected/security_label.out 2009-06-10 21:37:54.000000000 +0900
@@ -0,0 +1,129 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+SET sepostgresql_mcstrans TO off;
+SET
+SELECT sepgsql_getcon();
+ sepgsql_getcon
+-----------------------------------------------------
@ -1051,7 +1077,7 @@ diff -rpNU3 base/src/test/sepgsql/expected/security_label.out sepgsql-new/src/te
+INSERT INTO t1 VALUES (4, 'ddd'), (5, 'eee');
+INSERT 0 2
+INSERT INTO t1 (security_context, a, b) VALUES ('invalid security context', 6, 'fff'); -- to be failed
+ERROR: invalid security label: invalid security context
+ERROR: Invalid security context: "invalid security context"
+INSERT INTO t1 (security_context, a, b) VALUES ('system_u:object_r:sepgsql_table_t:s0:c20', 6, 'fff'); -- to be denied
+INSERT 0 0
+SELECT security_context, * FROM t1;
@ -1131,8 +1157,8 @@ diff -rpNU3 base/src/test/sepgsql/expected/security_label.out sepgsql-new/src/te
+system_u:object_r:sepgsql_table_t:s0:c4 13 nnn
diff -rpNU3 base/src/test/sepgsql/launch_psql.c sepgsql-new/src/test/sepgsql/launch_psql.c
--- base/src/test/sepgsql/launch_psql.c 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/launch_psql.c 2009-03-15 17:38:39.000000000 +0900
@@ -0,0 +1,87 @@
+++ sepgsql-new/src/test/sepgsql/launch_psql.c 2009-06-10 21:37:54.000000000 +0900
@@ -0,0 +1,91 @@
+/*
+ * launch_psql.c
+ *
@ -1189,6 +1215,10 @@ diff -rpNU3 base/src/test/sepgsql/launch_psql.c sepgsql-new/src/test/sepgsql/lau
+ pclose(filp);
+ filp = NULL;
+ }
+ /* Inject SET sepostgresql_mcstrans TO off */
+ ofs = strlen(buffer);
+ snprintf(buffer + ofs, sizeof(buffer) - ofs,
+ "\nSET sepostgresql_mcstrans TO off;\n");
+
+ /* Inject a pseudo sepgsql_getcon() to confirm new context */
+ ofs = strlen(buffer);
@ -1222,7 +1252,7 @@ diff -rpNU3 base/src/test/sepgsql/launch_psql.c sepgsql-new/src/test/sepgsql/lau
+}
diff -rpNU3 base/src/test/sepgsql/sql/basic.sql sepgsql-new/src/test/sepgsql/sql/basic.sql
--- base/src/test/sepgsql/sql/basic.sql 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/basic.sql 2009-03-15 17:38:39.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/basic.sql 2009-03-02 00:24:34.000000000 +0900
@@ -0,0 +1,59 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+
@ -1285,7 +1315,7 @@ diff -rpNU3 base/src/test/sepgsql/sql/basic.sql sepgsql-new/src/test/sepgsql/sql
+SELECT t3 FROM t3;
diff -rpNU3 base/src/test/sepgsql/sql/copy_stmt.sql sepgsql-new/src/test/sepgsql/sql/copy_stmt.sql
--- base/src/test/sepgsql/sql/copy_stmt.sql 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/copy_stmt.sql 2009-03-15 17:38:39.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/copy_stmt.sql 2009-03-02 00:24:34.000000000 +0900
@@ -0,0 +1,58 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+
@ -1347,7 +1377,7 @@ diff -rpNU3 base/src/test/sepgsql/sql/copy_stmt.sql sepgsql-new/src/test/sepgsql
+COPY t1 TO stdout;
diff -rpNU3 base/src/test/sepgsql/sql/enhanced_ddl_stmt.sql sepgsql-new/src/test/sepgsql/sql/enhanced_ddl_stmt.sql
--- base/src/test/sepgsql/sql/enhanced_ddl_stmt.sql 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/enhanced_ddl_stmt.sql 2009-03-15 17:38:39.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/enhanced_ddl_stmt.sql 2009-03-02 00:24:34.000000000 +0900
@@ -0,0 +1,89 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+
@ -1440,7 +1470,7 @@ diff -rpNU3 base/src/test/sepgsql/sql/enhanced_ddl_stmt.sql sepgsql-new/src/test
+SELECT proname, security_context FROM pg_proc WHERE oid = 'f2'::regproc;
diff -rpNU3 base/src/test/sepgsql/sql/join_query.sql sepgsql-new/src/test/sepgsql/sql/join_query.sql
--- base/src/test/sepgsql/sql/join_query.sql 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/join_query.sql 2009-03-15 17:38:39.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/join_query.sql 2009-03-02 00:24:34.000000000 +0900
@@ -0,0 +1,50 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+
@ -1494,7 +1524,7 @@ diff -rpNU3 base/src/test/sepgsql/sql/join_query.sql sepgsql-new/src/test/sepgsq
+SELECT j FROM (t1 JOIN t2 ON a = x) AS j; -- to be denied
diff -rpNU3 base/src/test/sepgsql/sql/large_object.sql sepgsql-new/src/test/sepgsql/sql/large_object.sql
--- base/src/test/sepgsql/sql/large_object.sql 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/large_object.sql 2009-03-15 17:38:39.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/large_object.sql 2009-03-03 14:31:40.000000000 +0900
@@ -0,0 +1,103 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+
@ -1601,7 +1631,7 @@ diff -rpNU3 base/src/test/sepgsql/sql/large_object.sql sepgsql-new/src/test/sepg
+SELECT lo_unlink(loid) FROM lolabel;
diff -rpNU3 base/src/test/sepgsql/sql/row_level.sql sepgsql-new/src/test/sepgsql/sql/row_level.sql
--- base/src/test/sepgsql/sql/row_level.sql 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/row_level.sql 2009-03-15 17:38:39.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/row_level.sql 2009-03-02 00:24:34.000000000 +0900
@@ -0,0 +1,61 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+
@ -1666,7 +1696,7 @@ diff -rpNU3 base/src/test/sepgsql/sql/row_level.sql sepgsql-new/src/test/sepgsql
+DELETE FROM t1 WHERE a = 7;
diff -rpNU3 base/src/test/sepgsql/sql/security_label.sql sepgsql-new/src/test/sepgsql/sql/security_label.sql
--- base/src/test/sepgsql/sql/security_label.sql 1970-01-01 09:00:00.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/security_label.sql 2009-03-15 17:38:39.000000000 +0900
+++ sepgsql-new/src/test/sepgsql/sql/security_label.sql 2009-03-02 00:24:34.000000000 +0900
@@ -0,0 +1,60 @@
+--@SECURITY_CONTEXT=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c15
+

View file

@ -1,6 +1,6 @@
diff -rpNU3 base/src/bin/initdb/initdb.c sepgsql-new/src/bin/initdb/initdb.c
--- base/src/bin/initdb/initdb.c 2008-11-05 09:57:00.000000000 +0900
+++ sepgsql-new/src/bin/initdb/initdb.c 2009-03-13 18:14:33.000000000 +0900
--- base/src/bin/initdb/initdb.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/bin/initdb/initdb.c 2009-12-15 17:05:57.000000000 +0900
@@ -94,6 +94,7 @@ static bool debug = false;
static bool noclean = false;
static bool show_setting = false;
@ -9,7 +9,7 @@ diff -rpNU3 base/src/bin/initdb/initdb.c sepgsql-new/src/bin/initdb/initdb.c
/* internal vars */
@@ -1212,6 +1213,13 @@ setup_config(void)
@@ -1224,6 +1225,13 @@ setup_config(void)
"#default_text_search_config = 'pg_catalog.simple'",
repltok);
@ -23,7 +23,7 @@ diff -rpNU3 base/src/bin/initdb/initdb.c sepgsql-new/src/bin/initdb/initdb.c
snprintf(path, sizeof(path), "%s/postgresql.conf", pg_data);
writefile(path, conflines);
@@ -2383,6 +2391,7 @@ usage(const char *progname)
@@ -2395,6 +2403,7 @@ usage(const char *progname)
printf(_(" -U, --username=NAME database superuser name\n"));
printf(_(" -W, --pwprompt prompt for a password for the new superuser\n"));
printf(_(" --pwfile=FILE read password for the new superuser from file\n"));
@ -31,7 +31,7 @@ diff -rpNU3 base/src/bin/initdb/initdb.c sepgsql-new/src/bin/initdb/initdb.c
printf(_(" -?, --help show this help, then exit\n"));
printf(_(" -V, --version output version information, then exit\n"));
printf(_("\nLess commonly used options:\n"));
@@ -2417,6 +2426,7 @@ main(int argc, char *argv[])
@@ -2429,6 +2438,7 @@ main(int argc, char *argv[])
{"auth", required_argument, NULL, 'A'},
{"pwprompt", no_argument, NULL, 'W'},
{"pwfile", required_argument, NULL, 9},
@ -39,7 +39,7 @@ diff -rpNU3 base/src/bin/initdb/initdb.c sepgsql-new/src/bin/initdb/initdb.c
{"username", required_argument, NULL, 'U'},
{"help", no_argument, NULL, '?'},
{"version", no_argument, NULL, 'V'},
@@ -2531,6 +2541,9 @@ main(int argc, char *argv[])
@@ -2543,6 +2553,9 @@ main(int argc, char *argv[])
case 9:
pwfilename = xstrdup(optarg);
break;
@ -50,8 +50,8 @@ diff -rpNU3 base/src/bin/initdb/initdb.c sepgsql-new/src/bin/initdb/initdb.c
show_setting = true;
break;
diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
--- base/src/bin/pg_dump/pg_dump.c 2009-02-02 11:47:17.000000000 +0900
+++ sepgsql-new/src/bin/pg_dump/pg_dump.c 2009-03-13 18:14:33.000000000 +0900
--- base/src/bin/pg_dump/pg_dump.c 2009-09-10 20:11:35.000000000 +0900
+++ sepgsql-new/src/bin/pg_dump/pg_dump.c 2009-09-10 20:24:37.000000000 +0900
@@ -118,6 +118,8 @@ static int g_numNamespaces;
/* flag to turn on/off dollar quoting */
static int disable_dollar_quoting = 0;
@ -121,7 +121,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
fmtQualifiedId(tbinfo->dobj.namespace->dobj.name,
classname));
}
@@ -1785,11 +1810,29 @@ dumpBlobComments(Archive *AH, void *arg)
@@ -1791,11 +1816,29 @@ dumpBlobComments(Archive *AH, void *arg)
Oid blobOid;
char *comment;
@ -152,7 +152,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
comment = PQgetvalue(res, i, 1);
printfPQExpBuffer(commentcmd, "COMMENT ON LARGE OBJECT %u IS ",
@@ -2887,6 +2930,7 @@ getTables(int *numTables)
@@ -2893,6 +2936,7 @@ getTables(int *numTables)
int i_owning_col;
int i_reltablespace;
int i_reloptions;
@ -160,7 +160,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
/* Make sure we are in proper schema */
selectSourceSchema("pg_catalog");
@@ -2926,7 +2970,8 @@ getTables(int *numTables)
@@ -2932,7 +2976,8 @@ getTables(int *numTables)
"d.refobjid as owning_tab, "
"d.refobjsubid as owning_col, "
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = c.reltablespace) AS reltablespace, "
@ -170,7 +170,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"from pg_class c "
"left join pg_depend d on "
"(c.relkind = '%c' and "
@@ -2936,6 +2981,7 @@ getTables(int *numTables)
@@ -2942,6 +2987,7 @@ getTables(int *numTables)
"where relkind in ('%c', '%c', '%c', '%c') "
"order by c.oid",
username_subquery,
@ -178,7 +178,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
RELKIND_SEQUENCE,
RELKIND_RELATION, RELKIND_SEQUENCE,
RELKIND_VIEW, RELKIND_COMPOSITE_TYPE);
@@ -2955,7 +3001,8 @@ getTables(int *numTables)
@@ -2961,7 +3007,8 @@ getTables(int *numTables)
"d.refobjid as owning_tab, "
"d.refobjsubid as owning_col, "
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = c.reltablespace) AS reltablespace, "
@ -188,7 +188,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"from pg_class c "
"left join pg_depend d on "
"(c.relkind = '%c' and "
@@ -2984,7 +3031,8 @@ getTables(int *numTables)
@@ -2990,7 +3037,8 @@ getTables(int *numTables)
"d.refobjid as owning_tab, "
"d.refobjsubid as owning_col, "
"NULL as reltablespace, "
@ -198,7 +198,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"from pg_class c "
"left join pg_depend d on "
"(c.relkind = '%c' and "
@@ -3009,7 +3057,8 @@ getTables(int *numTables)
@@ -3015,7 +3063,8 @@ getTables(int *numTables)
"NULL::oid as owning_tab, "
"NULL::int4 as owning_col, "
"NULL as reltablespace, "
@ -208,7 +208,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"from pg_class "
"where relkind in ('%c', '%c', '%c') "
"order by oid",
@@ -3029,7 +3078,8 @@ getTables(int *numTables)
@@ -3035,7 +3084,8 @@ getTables(int *numTables)
"NULL::oid as owning_tab, "
"NULL::int4 as owning_col, "
"NULL as reltablespace, "
@ -218,7 +218,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"from pg_class "
"where relkind in ('%c', '%c', '%c') "
"order by oid",
@@ -3059,7 +3109,8 @@ getTables(int *numTables)
@@ -3065,7 +3115,8 @@ getTables(int *numTables)
"NULL::oid as owning_tab, "
"NULL::int4 as owning_col, "
"NULL as reltablespace, "
@ -228,7 +228,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"from pg_class c "
"where relkind in ('%c', '%c') "
"order by oid",
@@ -3102,6 +3153,7 @@ getTables(int *numTables)
@@ -3108,6 +3159,7 @@ getTables(int *numTables)
i_owning_col = PQfnumber(res, "owning_col");
i_reltablespace = PQfnumber(res, "reltablespace");
i_reloptions = PQfnumber(res, "reloptions");
@ -236,7 +236,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
for (i = 0; i < ntups; i++)
{
@@ -3132,6 +3184,7 @@ getTables(int *numTables)
@@ -3138,6 +3190,7 @@ getTables(int *numTables)
}
tblinfo[i].reltablespace = strdup(PQgetvalue(res, i, i_reltablespace));
tblinfo[i].reloptions = strdup(PQgetvalue(res, i, i_reloptions));
@ -244,7 +244,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
/* other fields were zeroed above */
@@ -4320,6 +4373,7 @@ getTableAttrs(TableInfo *tblinfo, int nu
@@ -4326,6 +4379,7 @@ getTableAttrs(TableInfo *tblinfo, int nu
int i_atthasdef;
int i_attisdropped;
int i_attislocal;
@ -252,7 +252,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
PGresult *res;
int ntups;
bool hasdefaults;
@@ -4362,12 +4416,14 @@ getTableAttrs(TableInfo *tblinfo, int nu
@@ -4368,12 +4422,14 @@ getTableAttrs(TableInfo *tblinfo, int nu
/* need left join here to not fail on dropped columns ... */
appendPQExpBuffer(q, "SELECT a.attnum, a.attname, a.atttypmod, a.attstattarget, a.attstorage, t.typstorage, "
"a.attnotnull, a.atthasdef, a.attisdropped, a.attislocal, "
@ -268,7 +268,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
tbinfo->dobj.catId.oid);
}
else if (g_fout->remoteVersion >= 70100)
@@ -4379,7 +4435,8 @@ getTableAttrs(TableInfo *tblinfo, int nu
@@ -4385,7 +4441,8 @@ getTableAttrs(TableInfo *tblinfo, int nu
*/
appendPQExpBuffer(q, "SELECT a.attnum, a.attname, a.atttypmod, -1 as attstattarget, a.attstorage, t.typstorage, "
"a.attnotnull, a.atthasdef, false as attisdropped, false as attislocal, "
@ -278,7 +278,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"from pg_attribute a left join pg_type t "
"on a.atttypid = t.oid "
"where a.attrelid = '%u'::oid "
@@ -4392,7 +4449,8 @@ getTableAttrs(TableInfo *tblinfo, int nu
@@ -4398,7 +4455,8 @@ getTableAttrs(TableInfo *tblinfo, int nu
/* format_type not available before 7.1 */
appendPQExpBuffer(q, "SELECT attnum, attname, atttypmod, -1 as attstattarget, attstorage, attstorage as typstorage, "
"attnotnull, atthasdef, false as attisdropped, false as attislocal, "
@ -288,7 +288,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"from pg_attribute a "
"where attrelid = '%u'::oid "
"and attnum > 0::int2 "
@@ -4416,6 +4474,7 @@ getTableAttrs(TableInfo *tblinfo, int nu
@@ -4422,6 +4480,7 @@ getTableAttrs(TableInfo *tblinfo, int nu
i_atthasdef = PQfnumber(res, "atthasdef");
i_attisdropped = PQfnumber(res, "attisdropped");
i_attislocal = PQfnumber(res, "attislocal");
@ -296,7 +296,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
tbinfo->numatts = ntups;
tbinfo->attnames = (char **) malloc(ntups * sizeof(char *));
@@ -4426,6 +4485,7 @@ getTableAttrs(TableInfo *tblinfo, int nu
@@ -4432,6 +4491,7 @@ getTableAttrs(TableInfo *tblinfo, int nu
tbinfo->typstorage = (char *) malloc(ntups * sizeof(char));
tbinfo->attisdropped = (bool *) malloc(ntups * sizeof(bool));
tbinfo->attislocal = (bool *) malloc(ntups * sizeof(bool));
@ -304,7 +304,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
tbinfo->notnull = (bool *) malloc(ntups * sizeof(bool));
tbinfo->attrdefs = (AttrDefInfo **) malloc(ntups * sizeof(AttrDefInfo *));
tbinfo->inhAttrs = (bool *) malloc(ntups * sizeof(bool));
@@ -4449,6 +4509,7 @@ getTableAttrs(TableInfo *tblinfo, int nu
@@ -4455,6 +4515,7 @@ getTableAttrs(TableInfo *tblinfo, int nu
tbinfo->typstorage[j] = *(PQgetvalue(res, j, i_typstorage));
tbinfo->attisdropped[j] = (PQgetvalue(res, j, i_attisdropped)[0] == 't');
tbinfo->attislocal[j] = (PQgetvalue(res, j, i_attislocal)[0] == 't');
@ -312,7 +312,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
tbinfo->notnull[j] = (PQgetvalue(res, j, i_attnotnull)[0] == 't');
tbinfo->attrdefs[j] = NULL; /* fix below */
if (PQgetvalue(res, j, i_atthasdef)[0] == 't')
@@ -6430,6 +6491,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
@@ -6436,6 +6497,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
char *procost;
char *prorows;
char *lanname;
@ -320,7 +320,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
char *rettypename;
int nallargs;
char **allargtypes = NULL;
@@ -6459,9 +6521,11 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
@@ -6465,9 +6527,11 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
"proallargtypes, proargmodes, proargnames, "
"provolatile, proisstrict, prosecdef, "
"proconfig, procost, prorows, "
@ -333,7 +333,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
finfo->dobj.catId.oid);
}
else if (g_fout->remoteVersion >= 80100)
@@ -6471,7 +6535,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
@@ -6477,7 +6541,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
"proallargtypes, proargmodes, proargnames, "
"provolatile, proisstrict, prosecdef, "
"null as proconfig, 0 as procost, 0 as prorows, "
@ -343,7 +343,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"FROM pg_catalog.pg_proc "
"WHERE oid = '%u'::pg_catalog.oid",
finfo->dobj.catId.oid);
@@ -6485,7 +6550,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
@@ -6491,7 +6556,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
"proargnames, "
"provolatile, proisstrict, prosecdef, "
"null as proconfig, 0 as procost, 0 as prorows, "
@ -353,7 +353,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"FROM pg_catalog.pg_proc "
"WHERE oid = '%u'::pg_catalog.oid",
finfo->dobj.catId.oid);
@@ -6499,7 +6565,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
@@ -6505,7 +6571,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
"null as proargnames, "
"provolatile, proisstrict, prosecdef, "
"null as proconfig, 0 as procost, 0 as prorows, "
@ -363,7 +363,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"FROM pg_catalog.pg_proc "
"WHERE oid = '%u'::pg_catalog.oid",
finfo->dobj.catId.oid);
@@ -6515,7 +6582,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
@@ -6521,7 +6588,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
"proisstrict, "
"'f'::boolean as prosecdef, "
"null as proconfig, 0 as procost, 0 as prorows, "
@ -373,7 +373,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"FROM pg_proc "
"WHERE oid = '%u'::oid",
finfo->dobj.catId.oid);
@@ -6531,7 +6599,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
@@ -6537,7 +6605,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
"'f'::boolean as proisstrict, "
"'f'::boolean as prosecdef, "
"null as proconfig, 0 as procost, 0 as prorows, "
@ -383,7 +383,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
"FROM pg_proc "
"WHERE oid = '%u'::oid",
finfo->dobj.catId.oid);
@@ -6562,6 +6631,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
@@ -6568,6 +6637,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
procost = PQgetvalue(res, 0, PQfnumber(res, "procost"));
prorows = PQgetvalue(res, 0, PQfnumber(res, "prorows"));
lanname = PQgetvalue(res, 0, PQfnumber(res, "lanname"));
@ -391,7 +391,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
/*
* See backend/commands/define.c for details of how the 'AS' clause is
@@ -6699,6 +6769,9 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
@@ -6705,6 +6775,9 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
if (prosecdef[0] == 't')
appendPQExpBuffer(q, " SECURITY DEFINER");
@ -401,7 +401,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
/*
* COST and ROWS are emitted only if present and not default, so as not to
* break backwards-compatibility of the dump without need. Keep this code
@@ -8780,6 +8853,10 @@ dumpTableSchema(Archive *fout, TableInfo
@@ -8786,6 +8859,10 @@ dumpTableSchema(Archive *fout, TableInfo
if (tbinfo->notnull[j] && !tbinfo->inhNotNull[j])
appendPQExpBuffer(q, " NOT NULL");
@ -412,7 +412,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
actual_atts++;
}
}
@@ -8827,6 +8904,9 @@ dumpTableSchema(Archive *fout, TableInfo
@@ -8833,6 +8910,9 @@ dumpTableSchema(Archive *fout, TableInfo
if (tbinfo->reloptions && strlen(tbinfo->reloptions) > 0)
appendPQExpBuffer(q, "\nWITH (%s)", tbinfo->reloptions);
@ -422,7 +422,7 @@ diff -rpNU3 base/src/bin/pg_dump/pg_dump.c sepgsql-new/src/bin/pg_dump/pg_dump.c
appendPQExpBuffer(q, ";\n");
/* Loop dumping statistics and storage statements */
@@ -10244,6 +10324,13 @@ fmtCopyColumnList(const TableInfo *ti)
@@ -10250,6 +10330,13 @@ fmtCopyColumnList(const TableInfo *ti)
appendPQExpBuffer(q, "(");
needComma = false;

View file

@ -7,9 +7,9 @@
# pidfile: /var/run/postmaster.pid
#---------------------------------------------------------------------
PGVERSION="8.3.7"
PGVERSION="8.3.9"
PGMAJORVERSION=`echo "$PGVERSION" | sed 's/^\([0-9]*\.[0-9a-z]*\).*$/\1/'`
SEPGVERSION="1771"
SEPGVERSION="2515"
# source function library
. /etc/rc.d/init.d/functions
@ -165,7 +165,7 @@ do_initdb() {
test -x /sbin/restorecon && /sbin/restorecon -R "${SEPGSQL_DATA}"
# Initialize the database
cd ${SEPGSQL_BIN}
/sbin/runuser -- sepgsql -c "./initdb.sepgsql --pgace-feature=selinux -A 'ident sameuser' ${SEPGSQL_DATA}" \
/sbin/runuser -- sepgsql -c "./initdb.sepgsql --enable-selinux -A 'ident sameuser' ${SEPGSQL_DATA}" \
>> "${SEPGSQL_STARTUP_LOG}" 2>&1 < /dev/null
if [ -f "${SEPGSQL_DATA}/PG_VERSION" ]; then
echo_success

View file

@ -11,8 +11,8 @@
Summary: Security Enhanced PostgreSQL
Name: sepostgresql
Version: 8.3.7
Release: 1771%{?dist}
Version: 8.3.9
Release: 2582%{?dist}
License: BSD
Group: Applications/Databases
Url: http://code.google.com/p/sepgsql/
@ -26,7 +26,7 @@ Patch1: sepostgresql-utils-8.3.patch
Patch2: sepostgresql-test-8.3.patch
Patch3: sepostgresql-fedora-prefix.patch
BuildRequires: perl glibc-devel bison flex readline-devel zlib-devel >= 1.0.4
BuildRequires: checkpolicy libselinux-devel >= 2.0.43
BuildRequires: checkpolicy libselinux-devel >= 2.0.80
BuildRequires: selinux-policy >= 3.4.2
%if %{ssl}
BuildRequires: openssl-devel
@ -35,8 +35,9 @@ Requires(pre): shadow-utils
Requires(post): policycoreutils /sbin/chkconfig
Requires(preun): /sbin/chkconfig /sbin/service
Requires(postun): policycoreutils
Requires: postgresql-server = %{version}
Requires: policycoreutils >= 2.0.16 libselinux >= 2.0.43
Requires: postgresql-server >= 8.3.0
Conflicts: postgresql-server >= 8.4.0
Requires: policycoreutils >= 2.0.16 libselinux >= 2.0.80
Requires: selinux-policy >= 3.4.2
Requires: tzdata logrotate
@ -199,6 +200,21 @@ fi
%attr(700,sepgsql,sepgsql) %dir %{_localstatedir}/lib/sepgsql/backups
%changelog
* Thu Mar 18 2010 KaiGai Kohei <kaigai@ak.jp.nec.com> - 8.3.9-2583
- detach dependency to minor updates
* Fri Dec 25 2009 KaiGai Kohei <kaigai@kaigai.gr.jp> - 8.3.9-2515
- upgrade base PostgreSQL v8.3.8->8.3.9
* Thu Sep 10 2009 KaiGai Kohei <kaigai@kaigai.gr.jp> - 8.3.8-2300
- upgrade base PostgreSQL v8.3.7->8.3.8
* Tue Jun 9 2009 KaiGai Kohei <kaigai@kaigai.gr.jp> - 8.3.7-1990
- backport features from v8.4devel, it also needs libselinux-2.0.80
* Fri Apr 17 2009 KaiGai Kohei <kaigai@kaigai.gr.jp> - 8.3.7-1772
- bugfix: /etc/init.d/sepostgresql initdb didn't work correctly
* Fri Mar 27 2009 KaiGai Kohei <kaigai@kaigai.gr.jp> - 8.3.7-1770
- upgrade base PostgreSQL versin 8.3.6->8.3.7
- backport features from v8.4devel

View file

@ -1 +1 @@
7b7e91a2221e55fe1b167e663217a96d postgresql-8.3.7.tar.bz2
e120b001354851b5df26cbee8c2786d5 postgresql-8.3.9.tar.bz2