X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2Fzlib_inflate%2Finflate.c;h=f5ce87b0800edd421beedc2264c9b9a2a81db885;hb=74d29168e9af59c9db1885e27493fbed4d24ef18;hp=0ad1ebf00947a1e7aa5bfb2889bc9d39e298ebe6;hpb=038a5008b2f395c85e6e71d6ddf3c684e7c405b0;p=firefly-linux-kernel-4.4.55.git diff --git a/lib/zlib_inflate/inflate.c b/lib/zlib_inflate/inflate.c index 0ad1ebf00947..f5ce87b0800e 100644 --- a/lib/zlib_inflate/inflate.c +++ b/lib/zlib_inflate/inflate.c @@ -916,50 +916,3 @@ int zlib_inflateIncomp(z_stream *z) return Z_OK; } - -#include -#include -#include - -/* Utility function: initialize zlib, unpack binary blob, clean up zlib, - * return len or negative error code. */ -int zlib_inflate_blob(void *gunzip_buf, unsigned sz, const void *buf, unsigned len) -{ - const u8 *zbuf = buf; - struct z_stream_s *strm; - int rc; - - rc = -ENOMEM; - strm = kmalloc(sizeof(*strm), GFP_KERNEL); - if (strm == NULL) - goto gunzip_nomem1; - strm->workspace = kmalloc(zlib_inflate_workspacesize(), GFP_KERNEL); - if (strm->workspace == NULL) - goto gunzip_nomem2; - - /* gzip header (1f,8b,08... 10 bytes total + possible asciz filename) - * expected to be stripped from input */ - - strm->next_in = zbuf; - strm->avail_in = len; - strm->next_out = gunzip_buf; - strm->avail_out = sz; - - rc = zlib_inflateInit2(strm, -MAX_WBITS); - if (rc == Z_OK) { - rc = zlib_inflate(strm, Z_FINISH); - /* after Z_FINISH, only Z_STREAM_END is "we unpacked it all" */ - if (rc == Z_STREAM_END) - rc = sz - strm->avail_out; - else - rc = -EINVAL; - zlib_inflateEnd(strm); - } else - rc = -EINVAL; - - kfree(strm->workspace); -gunzip_nomem2: - kfree(strm); -gunzip_nomem1: - return rc; /* returns Z_OK (0) if successful */ -}