From owner-svn-soc-all@FreeBSD.ORG Mon Aug 19 16:40:11 2013 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2F92F20E for ; Mon, 19 Aug 2013 16:40:11 +0000 (UTC) (envelope-from dpl@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1BAF629BD for ; Mon, 19 Aug 2013 16:40:11 +0000 (UTC) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7JGeBkb043689 for ; Mon, 19 Aug 2013 16:40:11 GMT (envelope-from dpl@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.14.7/8.14.6/Submit) id r7JGeANP043650 for svn-soc-all@FreeBSD.org; Mon, 19 Aug 2013 16:40:10 GMT (envelope-from dpl@FreeBSD.org) Date: Mon, 19 Aug 2013 16:40:10 GMT Message-Id: <201308191640.r7JGeANP043650@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to dpl@FreeBSD.org using -f From: dpl@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r256157 - in soc2013/dpl/head/lib/libzcap: . test zlibworker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Aug 2013 16:40:11 -0000 Author: dpl Date: Mon Aug 19 16:40:10 2013 New Revision: 256157 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=256157 Log: Updated version. Things start to work. Added: soc2013/dpl/head/lib/libzcap/test/zcaplibtest.c Deleted: soc2013/dpl/head/lib/libzcap/test/functionstest.c soc2013/dpl/head/lib/libzcap/zlib.3 Modified: soc2013/dpl/head/lib/libzcap/capsicum.c soc2013/dpl/head/lib/libzcap/commands.c soc2013/dpl/head/lib/libzcap/deflate.c soc2013/dpl/head/lib/libzcap/gzlib.c soc2013/dpl/head/lib/libzcap/inflate.c soc2013/dpl/head/lib/libzcap/zlibworker/commands.c soc2013/dpl/head/lib/libzcap/zlibworker/zlibworker.c Modified: soc2013/dpl/head/lib/libzcap/capsicum.c ============================================================================== --- soc2013/dpl/head/lib/libzcap/capsicum.c Mon Aug 19 15:58:39 2013 (r256156) +++ soc2013/dpl/head/lib/libzcap/capsicum.c Mon Aug 19 16:40:10 2013 (r256157) @@ -12,7 +12,7 @@ #define SUM 0 -pid_t pid = 0; +pid_t pid = 0; int sv[2]; int startChild(void); @@ -23,28 +23,32 @@ startChild(void) { if (socketpair(PF_LOCAL, SOCK_STREAM, 0, sv) < 0 ) - perror("socketpair"); + perror("zcaplib: socketpair"); if( (pid = fork()) == 0 ){ - close(STDIN_FILENO); + cap_rights_limit(STDIN_FILENO, CAP_WRITE); cap_rights_limit(STDOUT_FILENO, CAP_READ); cap_rights_limit(STDERR_FILENO, CAP_WRITE); - dup(sv[1]); /* 3 is now the socket */ close(sv[0]); - close(sv[1]); + dup2(sv[1] , 3); /* 3 is now the socket */ + close(4); - /* open and fexec() listener */ + /* open and execl() listener */ if (access("/usr/libexec/zlibworker", X_OK) < 0) { - fprintf(stderr, "zlibworker doesn't exist, or can't be executed.\n"); - fprintf(stderr, "You should compile and install it.\n"); + perror("zcaplib: zlibworker:"); exit (-1); } - execl("/usr/libexec/zlibworker", ""); + if ( execl("/usr/libexec/zlibworker", "zlibworker", NULL) <0 ) { + perror("zcaplib: zlibworker:"); + exit (-1); + } exit(0); - } else + } else { + close(sv[1]); atexit(killChild); + } return pid; } @@ -53,21 +57,19 @@ sendCommand( nvlist_t *nvl ) { if( nvlist_send(sv[0], nvl) != 0 ) { - perror("nvlist_send()"); + perror("zcaplib: nvlist_send()"); return NULL; } - nvlist_destroy(nvl); /* recv results */ - if ((nvl = nvlist_recv(sv[0])) != NULL) { - perror("nvlist_send()"); + if ((nvl = nvlist_recv(sv[0])) == NULL) { + perror("zcaplib: nvlist_recv()"); return NULL; } - printf("done sending/recving\n"); return (nvl); } -void killChild(void){ +void killChild(void) { kill(pid, SIGKILL); } \ No newline at end of file Modified: soc2013/dpl/head/lib/libzcap/commands.c ============================================================================== --- soc2013/dpl/head/lib/libzcap/commands.c Mon Aug 19 15:58:39 2013 (r256156) +++ soc2013/dpl/head/lib/libzcap/commands.c Mon Aug 19 16:40:10 2013 (r256157) @@ -113,7 +113,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATEINIT); @@ -154,7 +154,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATEINIT); @@ -181,7 +181,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATEINIT); @@ -208,7 +208,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATEINIT); @@ -239,7 +239,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATEINIT); @@ -265,7 +265,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATEINIT); @@ -293,7 +293,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATESETDICTIONARY); @@ -319,7 +319,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATECOPY); @@ -346,7 +346,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATERESET); @@ -374,7 +374,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATEPARAMS); @@ -403,7 +403,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATETUNE); @@ -432,7 +432,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATEBOUND); @@ -458,7 +458,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATEPENDING); @@ -486,7 +486,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATEPRIME); @@ -515,7 +515,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_DEFLATESETHEADER); @@ -544,7 +544,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATESETDICTIONARY); @@ -570,7 +570,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATEGETDICTIONARY); @@ -595,7 +595,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATESYNC); @@ -620,7 +620,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATECOPY); @@ -647,7 +647,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATERESET); @@ -674,7 +674,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATERESET2); @@ -702,7 +702,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATEPRIME); @@ -729,7 +729,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATEMARK); @@ -755,7 +755,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATEGETHEADER); @@ -785,7 +785,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATEBACKINIT); @@ -815,7 +815,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATEBACK); @@ -840,7 +840,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_INFLATEBACKEND); @@ -865,12 +865,13 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_ZLIBCOMPILEFLAGS); result = sendCommand(nvl); + printf("after sendCommand()\n"); ret = nvlist_take_number(result, "result"); destroy(); @@ -887,7 +888,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_COMPRESSBOUND); @@ -910,7 +911,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return (NULL); } nvlist_add_number(nvl, "command", ZCAPCMD_GZOPEN); @@ -937,7 +938,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_GZBUFFER); @@ -960,7 +961,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_GZSETPARAMS); @@ -985,7 +986,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_GZREAD); @@ -1009,7 +1010,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_GZWRITE); @@ -1032,7 +1033,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_GZPRINTF); @@ -1055,7 +1056,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_GZPUTS); @@ -1078,7 +1079,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return (NULL); } nvlist_add_number(nvl, "command", ZCAPCMD_GZGETS); @@ -1105,7 +1106,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_GZPUTC); @@ -1128,7 +1129,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_GZUNGETC); @@ -1151,7 +1152,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_GZFLUSH); @@ -1174,7 +1175,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_GZSEEK); @@ -1202,7 +1203,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", command); @@ -1224,7 +1225,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_GZPUTC); @@ -1250,7 +1251,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_ADLER32); @@ -1274,7 +1275,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_ADLER32_COMBINE); @@ -1298,7 +1299,7 @@ checkChild(); if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_CRC32); @@ -1323,7 +1324,7 @@ if( (args = nvlist_create(0)) == NULL || (nvl = nvlist_create(0)) == NULL ) { - perror("nvlist_create"); + perror("zcaplib: nvlist_create"); return(0); } nvlist_add_number(nvl, "command", ZCAPCMD_CRC32_COMBINE); Modified: soc2013/dpl/head/lib/libzcap/deflate.c ============================================================================== --- soc2013/dpl/head/lib/libzcap/deflate.c Mon Aug 19 15:58:39 2013 (r256156) +++ soc2013/dpl/head/lib/libzcap/deflate.c Mon Aug 19 16:40:10 2013 (r256157) @@ -3,50 +3,6 @@ * For conditions of distribution and use, see copyright notice in zlib.h */ -/* - * ALGORITHM - * - * The "deflation" process depends on being able to identify portions - * of the input text which are identical to earlier input (within a - * sliding window trailing behind the input currently being processed). - * - * The most straightforward technique turns out to be the fastest for - * most input files: try all possible matches and select the longest. - * The key feature of this algorithm is that insertions into the string - * dictionary are very simple and thus fast, and deletions are avoided - * completely. Insertions are performed at each input character, whereas - * string matches are performed only when the previous match ends. So it - * is preferable to spend more time in matches to allow very fast string - * insertions and avoid deletions. The matching algorithm for small - * strings is inspired from that of Rabin & Karp. A brute force approach - * is used to find longer strings when a small match has been found. - * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze - * (by Leonid Broukhis). - * A previous version of this file used a more sophisticated algorithm - * (by Fiala and Greene) which is guaranteed to run in linear amortized - * time, but has a larger average cost, uses more memory and is patented. - * However the F&G algorithm may be faster for some highly redundant - * files if the parameter max_chain_length (described below) is too large. - * - * ACKNOWLEDGEMENTS - * - * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and - * I found it in 'freeze' written by Leonid Broukhis. - * Thanks to many people for bug reports and testing. - * - * REFERENCES - * - * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification". - * Available in http://tools.ietf.org/html/rfc1951 - * - * A description of the Rabin and Karp algorithm is given in the book - * "Algorithms" by R. Sedgewick, Addison-Wesley, p252. - * - * Fiala,E.R., and Greene,D.H. - * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595 - * - */ - /* @(#) $Id$ */ #include "deflate.h" @@ -79,6 +35,10 @@ const char *version; int stream_size; { + /* The other process can't use this process functions. */ + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_deflateInit(strm, level, method, windowBits, memLevel, strategy, version, stream_size); } @@ -90,6 +50,9 @@ const Bytef *dictionary; uInt dictLength; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; int ret = 0; /* We can send all the dictionary data, but it doesn't seem a good idea. */ /* We also can send the last 5kb, but that would make the lib slower. */ @@ -110,6 +73,9 @@ int ZEXPORT deflateReset (strm) z_streamp strm; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_deflateReset(strm); } @@ -119,6 +85,9 @@ z_streamp strm; gz_headerp head; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_deflateSetHeader(strm, head); } @@ -129,6 +98,9 @@ unsigned *pending; int *bits; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_deflatePending(strm, pending, bits); } @@ -139,6 +111,9 @@ int bits; int value; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_deflatePrime(strm, bits, value); } @@ -149,6 +124,9 @@ int level; int strategy; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_deflateParams(strm, level, strategy); } @@ -161,6 +139,9 @@ int nice_length; int max_chain; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_deflateTune(strm, good_length, max_lazy, nice_length, max_chain); } @@ -170,6 +151,9 @@ z_streamp strm; uLong sourceLen; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_deflateBound(strm, sourceLen); } @@ -179,6 +163,9 @@ z_streamp strm; int flush; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_deflate(strm, flush); } @@ -187,7 +174,9 @@ int ZEXPORT deflateEnd (strm) z_streamp strm; { - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_deflateEnd(strm); } @@ -197,6 +186,12 @@ z_streamp dest; z_streamp source; { + dest->zalloc = Z_NULL; + dest->zfree = Z_NULL; + dest->opaque = Z_NULL; + source->zalloc = Z_NULL; + source->zfree = Z_NULL; + source->opaque = Z_NULL; #ifdef MAXSEG_64K return Z_STREAM_ERROR; #else Modified: soc2013/dpl/head/lib/libzcap/gzlib.c ============================================================================== --- soc2013/dpl/head/lib/libzcap/gzlib.c Mon Aug 19 15:58:39 2013 (r256156) +++ soc2013/dpl/head/lib/libzcap/gzlib.c Mon Aug 19 16:40:10 2013 (r256157) @@ -68,7 +68,7 @@ #endif if ((fd = open(path, oflag)) < 0) { - perror("Couldn't open"); + perror("zcaplib: Couldn't open"); abort(); } Modified: soc2013/dpl/head/lib/libzcap/inflate.c ============================================================================== --- soc2013/dpl/head/lib/libzcap/inflate.c Mon Aug 19 15:58:39 2013 (r256156) +++ soc2013/dpl/head/lib/libzcap/inflate.c Mon Aug 19 16:40:10 2013 (r256157) @@ -29,6 +29,9 @@ const char *version; int stream_size; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_inflateInit(strm, windowBits, version, stream_size); } @@ -36,6 +39,9 @@ int ZEXPORT inflateEnd(strm) z_streamp strm; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_inflateEnd(strm); } @@ -46,6 +52,9 @@ uInt dictLength; { /* XXX This ain't working yet. */ + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_inflateSetDictionary(strm, dictionary, dictLength); } @@ -56,6 +65,9 @@ uInt *dictLength; { /* XXX This ain't working yet. */ + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_inflateGetDictionary(strm, dictionary, dictLength); } @@ -63,6 +75,9 @@ int ZEXPORT inflateSync(strm) z_streamp strm; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_inflateSync(strm); } @@ -71,6 +86,12 @@ z_streamp dest; z_streamp source; { + dest->zalloc = Z_NULL; + dest->zfree = Z_NULL; + dest->opaque = Z_NULL; + source->zalloc = Z_NULL; + source->zfree = Z_NULL; + source->opaque = Z_NULL; return zcapcmd_inflateCopy(dest, source); } @@ -78,6 +99,9 @@ int ZEXPORT inflateReset(strm) z_streamp strm; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_inflateReset(strm); } @@ -86,6 +110,9 @@ z_streamp strm; int windowBits; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_inflateReset2(strm, windowBits); } @@ -95,6 +122,9 @@ int bits; int value; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_inflatePrime(strm, bits, value); } @@ -102,6 +132,9 @@ long ZEXPORT inflateMark(strm) z_streamp strm; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return zcapcmd_inflateMark(strm); } @@ -111,7 +144,10 @@ gz_headerp head; { /* XXX Do I really have to compartmentalize this??? */ - struct inflate_state FAR *state; + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; + struct inflate_state FAR *state; /* check state */ if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; @@ -128,5 +164,8 @@ z_streamp strm; int flush; { + strm->zalloc = Z_NULL; + strm->zfree = Z_NULL; + strm->opaque = Z_NULL; return -1; } Added: soc2013/dpl/head/lib/libzcap/test/zcaplibtest.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2013/dpl/head/lib/libzcap/test/zcaplibtest.c Mon Aug 19 16:40:10 2013 (r256157) @@ -0,0 +1,149 @@ +#include + +#include +#include + +void testzlibVersion(void); +void testdeflateInit(z_streamp strm); +void testdeflateEnd(z_streamp strm); +void testinflateInit(z_streamp strm); +void testinflateEnd(z_streamp strm); + +void testzlibCompileFlags(void); + +void testCompressBound(void); + +void testchecksums(void); + +int i; +char *data; +z_streamp strm; + +int +main() { + + if ( (strm = malloc(sizeof (z_stream))) == NULL) { + printf("zcaplibtest: malloc()"); + abort(); + } + + if ( (data = malloc(10*1024)) == NULL) { + printf("zcaplibtest: malloc()"); + abort(); + } + + for (i=0; i<(10*1024); i++) { + data[i] = rand(); + } + + printf("This is a zcaplib program tester.\n"); + printf("I will now test all the zcaplib functions.\n\n"); + +/* testdeflateInit(strm);*/ +/* testdeflateEnd(strm);*/ +/* testinflateInit(strm);*/ +/* testinflateEnd(strm);*/ + + testzlibCompileFlags(); +/* testCompressBound();*/ + + testchecksums(); + return 0; +} + +void +testdeflateInit(z_streamp strm) +{ + printf("deflateInit()\t...\t"); + + return; +} + +void +testdeflateEnd(z_streamp strm) +{ + printf("deflateEnd()\t...\t"); + + return; +} + +void +testinflateInit(z_streamp strm) +{ + printf("inflateInit()\t...\t"); + + return; +} + +void +testinflateEnd(z_streamp strm) +{ + printf("inflateEnd()\t...\t"); + + return; +} + +void +testzlibCompileFlags(void) +{ + uLong ret = 0; + printf("zlibCompileFlags()\t...\t"); + + if ( (ret = zlibCompileFlags()) > 0) + printf("OK\n"); + else + printf("Error\n"); + printf("zlibCompileFlags: %lu\n", ret); + + return; +} + +void +testCompressBound(void) +{ + printf("compressBound()\t...\t"); + return; +} + +void +testchecksums(void) +{ + long data[2]; + + uLong first = 0; + uLong second = 0; + uLong all = 0; + uLong combined = 0; + int lsize = sizeof(long); + + data[0] = random(); + data[1] = random(); + + first = adler32(0, (void *)data, sizeof(long)); + printf("adler32(0, %ld, %d): %ld\n", data[0], sizeof(long), first ); + + printf("adler32\t...\t"); + if (first != 0) + printf("OK\n"); + else + printf("Error\n"); + + second = adler32(0, (void *)(data+lsize), sizeof(long)); + printf("adler32(0, %ld, %d): %ld\n", data[1], sizeof(long), second ); + + combined = adler32_combine(first, second, sizeof(long)); + printf("adler32_combine(%ld, %ld, %d): %ld\n", first, second, sizeof(long), combined ); + + all = adler32(0L, (void *)data, 2*sizeof(long)); + printf("adler32(0, %ld, %d): %ld\n", data[0], 2*sizeof(long), all ); + + + printf("adler32_combine()\t...\t"); + if (all == combined) + printf("OK\n"); + else + printf("Error\n"); + + + return; +} \ No newline at end of file Modified: soc2013/dpl/head/lib/libzcap/zlibworker/commands.c ============================================================================== --- soc2013/dpl/head/lib/libzcap/zlibworker/commands.c Mon Aug 19 15:58:39 2013 (r256156) +++ soc2013/dpl/head/lib/libzcap/zlibworker/commands.c Mon Aug 19 16:40:10 2013 (r256157) @@ -19,7 +19,7 @@ if ((args = nvlist_take_nvlist(nvl, "args")) == NULL) { memcpy(stream, - nvlist_take_binary(args, "strm", &zstreamsize), zstreamsize); + nvlist_take_binary(args, "strm", &zstreamsize), zstreamsize); ret = deflateInit2_(stream, nvlist_take_number(args, "level"), nvlist_take_number(args, "method"), @@ -255,9 +255,9 @@ { int ret = -1; int len = 0; - void * data; + void * data = NULL; - if ((args = nvlist_take_nvlist(nvl, "args")) != NULL) + if ((args = nvlist_take_nvlist(nvl, "args")) != NULL) { len = nvlist_take_number(args, "len"); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***