PERFORCE change 174178 for review

Robert Watson rwatson at FreeBSD.org
Tue Feb 2 19:19:27 UTC 2010


http://p4web.freebsd.org/chv.cgi?CH=174178

Change 174178 by rwatson at rwatson_vimage_client on 2010/02/02 19:18:45

	When compressing in a sandbox, forward 'numflag' for zlib
	compression, asithat controls the compression level.
	
	Reported by:	kris

Affected files ...

.. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzip.c#9 edit
.. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzip.h#3 edit
.. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzsandbox.c#14 edit

Differences ...

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

@@ -186,7 +186,7 @@
 static	int	cflag;			/* stdout mode */
 static	int	dflag;			/* decompress mode */
 static	int	lflag;			/* list mode */
-static	int	numflag = 6;		/* gzip -1..-9 value */
+int	numflag = 6;			/* gzip -1..-9 value */
 
 #ifndef SMALL
 static	int	fflag;			/* force mode */

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

@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2009 Robert N. M. Watson
+ * Copyright (c) 2009-2010 Robert N. M. Watson
  * All rights reserved.
  *
  * WARNING: THIS IS EXPERIMENTAL SECURITY SOFTWARE THAT MUST NOT BE RELIED
@@ -34,6 +34,12 @@
 #ifndef _GZIP_H_
 #define	_GZIP_H_
 
+/*
+ * We need to forward the global variable 'numflag' to the sandbox as well as
+ * function arguments.
+ */
+extern int	numflag;
+
 off_t	gz_compress(int in, int out, off_t *gsizep, const char *origname,
 	    uint32_t mtime);
 off_t	gz_compress_wrapper(int in, int out, off_t *gsizep,

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

@@ -82,6 +82,7 @@
 
 struct host_gz_compress_req {
 	char		hgc_req_origname[PATH_MAX];
+	int		hgc_req_numflag;
 	uint32_t	hgc_req_mtime;
 } __packed;
 
@@ -103,6 +104,7 @@
 	bzero(&req, sizeof(req));
 	strlcpy(req.hgc_req_origname, origname,
 	    sizeof(req.hgc_req_origname));
+	req.hgc_req_numflag = numflag;
 	req.hgc_req_mtime = mtime;
 	iov_req.iov_base = &req;
 	iov_req.iov_len = sizeof(req);
@@ -137,6 +139,7 @@
 
 	bcopy(buffer, &req, sizeof(req));
 	bzero(&rep, sizeof(rep));
+	numflag = req.hgc_req_numflag;
 	rep.hgc_rep_retval = gz_compress(fd_in, fd_out, &rep.hgc_rep_gsize,
 	    req.hgc_req_origname, req.hgc_req_mtime);
 	iov.iov_base = &rep;


More information about the p4-projects mailing list