LCOV - code coverage report
Current view: top level - lib/libz - compress.c (source / functions) Hit Total Coverage
Test: 6.4 Lines: 0 24 0.0 %
Date: 2018-10-19 03:25:38 Functions: 0 3 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*      $OpenBSD: compress.c,v 1.1 2011/07/07 02:57:24 deraadt Exp $    */
       2             : /* compress.c -- compress a memory buffer
       3             :  * Copyright (C) 1995-2003 Jean-loup Gailly.
       4             :  * For conditions of distribution and use, see copyright notice in zlib.h
       5             :  */
       6             : 
       7             : 
       8             : #define ZLIB_INTERNAL
       9             : #include "zlib.h"
      10             : 
      11             : /* ===========================================================================
      12             :      Compresses the source buffer into the destination buffer. The level
      13             :    parameter has the same meaning as in deflateInit.  sourceLen is the byte
      14             :    length of the source buffer. Upon entry, destLen is the total size of the
      15             :    destination buffer, which must be at least 0.1% larger than sourceLen plus
      16             :    12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
      17             : 
      18             :      compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
      19             :    memory, Z_BUF_ERROR if there was not enough room in the output buffer,
      20             :    Z_STREAM_ERROR if the level parameter is invalid.
      21             : */
      22           0 : int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
      23             :     Bytef *dest;
      24             :     uLongf *destLen;
      25             :     const Bytef *source;
      26             :     uLong sourceLen;
      27             :     int level;
      28             : {
      29           0 :     z_stream stream;
      30             :     int err;
      31             : 
      32           0 :     stream.next_in = (Bytef*)source;
      33           0 :     stream.avail_in = (uInt)sourceLen;
      34             : #ifdef MAXSEG_64K
      35             :     /* Check for source > 64K on 16-bit machine: */
      36             :     if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
      37             : #endif
      38           0 :     stream.next_out = dest;
      39           0 :     stream.avail_out = (uInt)*destLen;
      40           0 :     if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
      41             : 
      42           0 :     stream.zalloc = (alloc_func)0;
      43           0 :     stream.zfree = (free_func)0;
      44           0 :     stream.opaque = (voidpf)0;
      45             : 
      46           0 :     err = deflateInit(&stream, level);
      47           0 :     if (err != Z_OK) return err;
      48             : 
      49           0 :     err = deflate(&stream, Z_FINISH);
      50           0 :     if (err != Z_STREAM_END) {
      51           0 :         deflateEnd(&stream);
      52           0 :         return err == Z_OK ? Z_BUF_ERROR : err;
      53             :     }
      54           0 :     *destLen = stream.total_out;
      55             : 
      56           0 :     err = deflateEnd(&stream);
      57           0 :     return err;
      58           0 : }
      59             : 
      60             : /* ===========================================================================
      61             :  */
      62           0 : int ZEXPORT compress (dest, destLen, source, sourceLen)
      63             :     Bytef *dest;
      64             :     uLongf *destLen;
      65             :     const Bytef *source;
      66             :     uLong sourceLen;
      67             : {
      68           0 :     return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
      69             : }
      70             : 
      71             : /* ===========================================================================
      72             :      If the default memLevel or windowBits for deflateInit() is changed, then
      73             :    this function needs to be updated.
      74             :  */
      75           0 : uLong ZEXPORT compressBound (sourceLen)
      76             :     uLong sourceLen;
      77             : {
      78           0 :     return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + 11;
      79             : }

Generated by: LCOV version 1.13