Date: Thu, 12 Sep 2013 19:56:36 GMT From: dpl@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r257242 - in soc2013/dpl/head/lib/libzcap: . test zlibworker Message-ID: <201309121956.r8CJua6f092763@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dpl Date: Thu Sep 12 19:56:36 2013 New Revision: 257242 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=257242 Log: Changed the open() arguments. Modified: soc2013/dpl/head/lib/libzcap/capsicum.c soc2013/dpl/head/lib/libzcap/commands.c soc2013/dpl/head/lib/libzcap/gzlib.c soc2013/dpl/head/lib/libzcap/test/testlib.sh soc2013/dpl/head/lib/libzcap/zlibworker/commands.c Modified: soc2013/dpl/head/lib/libzcap/capsicum.c ============================================================================== --- soc2013/dpl/head/lib/libzcap/capsicum.c Thu Sep 12 18:08:25 2013 (r257241) +++ soc2013/dpl/head/lib/libzcap/capsicum.c Thu Sep 12 19:56:36 2013 (r257242) @@ -111,6 +111,8 @@ { struct sandbox *sandbox; + if (DEBUG_ZCAP) + printf("DEBUG: findSandbox(%p)\n", ptr); if (ptr == NULL) return (SLIST_FIRST(&sandboxes)); @@ -119,7 +121,7 @@ return (sandbox); /* Not found */ - return (NULL); + errx(1, "findSandbox: Couldn't find sandbox"); } struct sandbox * @@ -176,7 +178,7 @@ newsandbox->socket = sv[1]; if (DEBUG_ZCAP) { printf("DEBUG: We have started a new sandbox.\n"); - printf("\tpd: %d, socket: %d\n", newsandbox->pd, newsandbox->socket); + printf("\tdata: %p pd: %d, socket: %d\n", data, newsandbox->pd, newsandbox->socket); } } return (newsandbox); @@ -202,8 +204,14 @@ box = findSandbox(ptr); + if (DEBUG_ZCAP) + printf("DEBUG: zcaplib: Entered sendCommand(%p, %p): box: %p\n", nvl, ptr, box); + if (DEBUG_ZCAP) + printf("DEBUG: zcaplib: About to send command\n"); if( nvlist_send(box->socket, nvl) != 0 ) err(1, "zcaplib: nvlist_send Error"); + if (DEBUG_ZCAP) + printf("DEBUG: zcaplib: Awaiting command\n"); if ((new = nvlist_recv(box->socket)) == NULL) err(1, "nvlist_recv(): nvlist_t is NULL"); return (new); Modified: soc2013/dpl/head/lib/libzcap/commands.c ============================================================================== --- soc2013/dpl/head/lib/libzcap/commands.c Thu Sep 12 18:08:25 2013 (r257241) +++ soc2013/dpl/head/lib/libzcap/commands.c Thu Sep 12 19:56:36 2013 (r257242) @@ -784,6 +784,9 @@ gzFile file; const void *ptr; + if ((file = malloc(gzfilesize)) == NULL) + err(1, "malloc"); + initNvl(); startSandbox(file); @@ -794,8 +797,7 @@ result = sendCommand(nvl, file); - if ((file = malloc(gzfilesize)) == NULL) - err(1, "malloc"); + ptr = nvlist_get_binary(result, "result", gzfilesize); memcpy(file, ptr, gzfilesize); destroy(); return(file); Modified: soc2013/dpl/head/lib/libzcap/gzlib.c ============================================================================== --- soc2013/dpl/head/lib/libzcap/gzlib.c Thu Sep 12 18:08:25 2013 (r257241) +++ soc2013/dpl/head/lib/libzcap/gzlib.c Thu Sep 12 19:56:36 2013 (r257242) @@ -8,22 +8,13 @@ #include <sys/capability.h> #include <err.h> +#include <sys/stat.h> #include "gzguts.h" #include "zutil.h" #include "commands.h" #include "zconf.h" -#if defined(_WIN32) && !defined(__BORLANDC__) -# define LSEEK _lseeki64 -#else -#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 -# define LSEEK lseek64 -#else -# define LSEEK lseek -#endif -#endif - /* -- see zlib.h -- */ gzFile ZEXPORT gzopen(path, mode) const char *path; @@ -31,12 +22,13 @@ { int oflag = 0; int fd; - char *loopmode; + const char *loopmode; cap_rights_t rights; + mode_t mode2; - strncpy(loopmode, mode, strlen(mode)+1); + loopmode = mode; while(*loopmode) { - switch (*mode){ + switch (*loopmode){ #ifndef NO_GZCOMPRESS case('w'): oflag |= O_WRONLY|O_CREAT|O_TRUNC; @@ -68,9 +60,11 @@ ++loopmode; } - if ((fd = open(path, oflag)) < 0) + mode2 = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; + if ((fd = open(path, oflag, mode2)) < 0) err(1, "zcaplib: Couldn't create gzip file"); + //limitgzip(fd, mode); cap_rights_init(&rights, CAP_READ, CAP_SEEK, CAP_WRITE, CAP_FSTAT, CAP_FCNTL); if (cap_rights_limit(fd, &rights) < 0) err(1, "zcaplib: Couldn't limit fd: %d", fd); @@ -104,7 +98,6 @@ gzFile file; unsigned size; { - fprintf(stderr, "Inside gzbuffer, calling zcapcmd_gzbuffer()"); return zcapcmd_gzbuffer(file, size); } @@ -198,23 +191,3 @@ { zcapcmd_simplecommand(file, ZCAPCMD_GZCLEARERR); } - - -#ifndef INT_MAX -/* portably return maximum value for an int (when limits.h presumed not - available) -- we need to do this to cover cases where 2's complement not - used, since C standard permits 1's complement and sign-bit representations, - otherwise we could just use ((unsigned)-1) >> 1 */ -unsigned ZLIB_INTERNAL gz_intmax() -{ - unsigned p, q; - - p = 1; - do { - q = p; - p <<= 1; - p++; - } while (p > q); - return q >> 1; -} -#endif Modified: soc2013/dpl/head/lib/libzcap/test/testlib.sh ============================================================================== --- soc2013/dpl/head/lib/libzcap/test/testlib.sh Thu Sep 12 18:08:25 2013 (r257241) +++ soc2013/dpl/head/lib/libzcap/test/testlib.sh Thu Sep 12 19:56:36 2013 (r257242) @@ -1,11 +1,12 @@ #!/bin/sh -cd /usr/home/athos/gsoc/head/lib/libzcap/ -sudo make clean all install -cd /usr/home/athos/gsoc/head/lib/libzcap/test +cd .. +make clean all +sudo make install + +echo; echo +cd test cc -o zcaplibtest -g -Wall -fno-color-diagnostics -lnv -lzcap zcaplibtest.c echo; echo -echo 'Done compiling library and tester.' -echo -sudo ktrace -i ./zcaplibtest +ktrace -i ./zcaplibtest Modified: soc2013/dpl/head/lib/libzcap/zlibworker/commands.c ============================================================================== --- soc2013/dpl/head/lib/libzcap/zlibworker/commands.c Thu Sep 12 18:08:25 2013 (r257241) +++ soc2013/dpl/head/lib/libzcap/zlibworker/commands.c Thu Sep 12 19:56:36 2013 (r257242) @@ -79,7 +79,7 @@ z_streamp zstrmtemp; /* We save the z_stream into memory. */ if ((stream = malloc(zstreamsize)) == NULL) - err(1, "deflateInit: Can't allocate memory"); + err(1, "inflateInit: Can't allocate memory"); zstrmtemp = (z_streamp)nvlist_get_binary(args, "strm", &zstreamsize); memcpy(stream, zstrmtemp , zstreamsize); @@ -109,7 +109,7 @@ z_streamp zstrmtemp; /* We save the z_stream into memory. */ if ((stream = malloc(zstreamsize)) == NULL) - err(1, "deflateInit: Can't allocate memory"); + err(1, "inflateEnd: Can't allocate memory"); zstrmtemp = (z_streamp)nvlist_get_binary(args, "strm", &zstreamsize); memcpy(stream, zstrmtemp , zstreamsize); @@ -262,11 +262,14 @@ zcapcmd_gzbuffer(nvlist_t *args, nvlist_t *result) { int ret = -1; + gzFile file; + unsigned size; - ret = gzbuffer( - (gzFile)nvlist_get_binary(args, "file", &gzsize), - nvlist_get_number(args, "size") - ); + fprintf(stderr, "zlibworker: zcapcmd_gzbuffer(): Starts\n"); + file = (gzFile)nvlist_get_binary(args, "file", &gzsize); + size = nvlist_get_number(args, "size"); + + ret = gzbuffer(file, size); nvlist_add_number(result, "result", ret); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201309121956.r8CJua6f092763>