PERFORCE change 164565 for review

Robert Watson rwatson at FreeBSD.org
Wed Jun 17 11:04:17 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=164565

Change 164565 by rwatson at rwatson_freebsd_capabilities on 2009/06/17 11:04:03

	Rather than using a special binary name to get to the sandbox
	workloop when gzip runs, define 'cap_main' as the work loop
	function, and compile with -rdynamic so that the symbol is
	visible to rtld.  This means that the sandbox component of the
	gzip binary is the only thing that runs in sandbox mode, but
	that the same binary is used for both environments.

Affected files ...

.. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/Makefile#3 edit
.. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzip.c#5 edit
.. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzip.h#1 add
.. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzsandbox.c#2 edit

Differences ...

==== //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/Makefile#3 (text+ko) ====

@@ -10,6 +10,7 @@
 DPADD=		${LIBZ} ${LIBCAPABILITY}
 LDADD=		-lz -lcapability
 WARNS?=		6
+CFLAGS+=	-rdynamic			# For sandbox cap_main
 
 .if ${MK_BZIP2_SUPPORT} != "no"
 DPADD+=		${LIBBZ2}

==== //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzip.c#5 (text+ko) ====

@@ -304,8 +304,6 @@
 	else if (strcmp(progname, "zcat") == 0 ||
 		 strcmp(progname, "gzcat") == 0)
 		dflag = cflag = 1;
-	else if (strcmp(progname, "gzip_sandbox") == 0)
-		sandbox_workloop();
 
 #ifdef SMALL
 #define OPT_LIST "123456789cdhltV"

==== //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzsandbox.c#2 (text+ko) ====

@@ -48,7 +48,7 @@
 
 #include "gzip.h"
 
-#define	LC_USR_BIN_GZIP_SANDBOX	"/usr/bin/gzip_sandbox"
+#define	LC_USR_BIN_GZIP_SANDBOX	"/usr/bin/gzip"
 static char *lc_sandbox_argv[] = { __DECONST(char *, LC_USR_BIN_GZIP_SANDBOX),
 				    NULL };
 
@@ -243,8 +243,9 @@
 		    filename));
 }
 
+
 int
-sandbox_workloop(void)
+cap_main(__unused int argc, __unused char *argv[])
 {
 	int fdarray[2], fdcount;
 	struct lc_host *lchp;


More information about the p4-projects mailing list