xref: /netbsd/common/dist/zlib/FAQ (revision de1ce4f6)
1aaf4ece6Schristos
2aaf4ece6Schristos                Frequently Asked Questions about zlib
3aaf4ece6Schristos
4aaf4ece6Schristos
5aaf4ece6SchristosIf your question is not there, please check the zlib home page
6*de1ce4f6Schristoshttp://zlib.net/ which may have more recent information.
7*de1ce4f6SchristosThe lastest zlib FAQ is at http://zlib.net/zlib_faq.html
8aaf4ece6Schristos
9aaf4ece6Schristos
10aaf4ece6Schristos 1. Is zlib Y2K-compliant?
11aaf4ece6Schristos
12aaf4ece6Schristos    Yes. zlib doesn't handle dates.
13aaf4ece6Schristos
14aaf4ece6Schristos 2. Where can I get a Windows DLL version?
15aaf4ece6Schristos
16*de1ce4f6Schristos    The zlib sources can be compiled without change to produce a DLL.  See the
17*de1ce4f6Schristos    file win32/DLL_FAQ.txt in the zlib distribution.  Pointers to the
18*de1ce4f6Schristos    precompiled DLL are found in the zlib web site at http://zlib.net/ .
19aaf4ece6Schristos
20aaf4ece6Schristos 3. Where can I get a Visual Basic interface to zlib?
21aaf4ece6Schristos
22aaf4ece6Schristos    See
23*de1ce4f6Schristos        * http://marknelson.us/1997/01/01/zlib-engine/
24aaf4ece6Schristos        * win32/DLL_FAQ.txt in the zlib distribution
25aaf4ece6Schristos
26aaf4ece6Schristos 4. compress() returns Z_BUF_ERROR.
27aaf4ece6Schristos
28*de1ce4f6Schristos    Make sure that before the call of compress(), the length of the compressed
29*de1ce4f6Schristos    buffer is equal to the available size of the compressed buffer and not
30aaf4ece6Schristos    zero.  For Visual Basic, check that this parameter is passed by reference
31aaf4ece6Schristos    ("as any"), not by value ("as long").
32aaf4ece6Schristos
33aaf4ece6Schristos 5. deflate() or inflate() returns Z_BUF_ERROR.
34aaf4ece6Schristos
35*de1ce4f6Schristos    Before making the call, make sure that avail_in and avail_out are not zero.
36*de1ce4f6Schristos    When setting the parameter flush equal to Z_FINISH, also make sure that
37*de1ce4f6Schristos    avail_out is big enough to allow processing all pending input.  Note that a
38*de1ce4f6Schristos    Z_BUF_ERROR is not fatal--another call to deflate() or inflate() can be
39*de1ce4f6Schristos    made with more input or output space.  A Z_BUF_ERROR may in fact be
40*de1ce4f6Schristos    unavoidable depending on how the functions are used, since it is not
41*de1ce4f6Schristos    possible to tell whether or not there is more output pending when
42*de1ce4f6Schristos    strm.avail_out returns with zero.  See http://zlib.net/zlib_how.html for a
43*de1ce4f6Schristos    heavily annotated example.
44aaf4ece6Schristos
45aaf4ece6Schristos 6. Where's the zlib documentation (man pages, etc.)?
46aaf4ece6Schristos
47*de1ce4f6Schristos    It's in zlib.h .  Examples of zlib usage are in the files test/example.c
48*de1ce4f6Schristos    and test/minigzip.c, with more in examples/ .
49aaf4ece6Schristos
50aaf4ece6Schristos 7. Why don't you use GNU autoconf or libtool or ...?
51aaf4ece6Schristos
52*de1ce4f6Schristos    Because we would like to keep zlib as a very small and simple package.
53*de1ce4f6Schristos    zlib is rather portable and doesn't need much configuration.
54aaf4ece6Schristos
55aaf4ece6Schristos 8. I found a bug in zlib.
56aaf4ece6Schristos
57*de1ce4f6Schristos    Most of the time, such problems are due to an incorrect usage of zlib.
58*de1ce4f6Schristos    Please try to reproduce the problem with a small program and send the
59*de1ce4f6Schristos    corresponding source to us at zlib@gzip.org .  Do not send multi-megabyte
60*de1ce4f6Schristos    data files without prior agreement.
61aaf4ece6Schristos
62aaf4ece6Schristos 9. Why do I get "undefined reference to gzputc"?
63aaf4ece6Schristos
64aaf4ece6Schristos    If "make test" produces something like
65aaf4ece6Schristos
66aaf4ece6Schristos       example.o(.text+0x154): undefined reference to `gzputc'
67aaf4ece6Schristos
68aaf4ece6Schristos    check that you don't have old files libz.* in /usr/lib, /usr/local/lib or
69aaf4ece6Schristos    /usr/X11R6/lib. Remove any old versions, then do "make install".
70aaf4ece6Schristos
71aaf4ece6Schristos10. I need a Delphi interface to zlib.
72aaf4ece6Schristos
73aaf4ece6Schristos    See the contrib/delphi directory in the zlib distribution.
74aaf4ece6Schristos
75aaf4ece6Schristos11. Can zlib handle .zip archives?
76aaf4ece6Schristos
77aaf4ece6Schristos    Not by itself, no.  See the directory contrib/minizip in the zlib
78aaf4ece6Schristos    distribution.
79aaf4ece6Schristos
80aaf4ece6Schristos12. Can zlib handle .Z files?
81aaf4ece6Schristos
82aaf4ece6Schristos    No, sorry.  You have to spawn an uncompress or gunzip subprocess, or adapt
83aaf4ece6Schristos    the code of uncompress on your own.
84aaf4ece6Schristos
85aaf4ece6Schristos13. How can I make a Unix shared library?
86aaf4ece6Schristos
87*de1ce4f6Schristos    By default a shared (and a static) library is built for Unix.  So:
88*de1ce4f6Schristos
89*de1ce4f6Schristos    make distclean
90*de1ce4f6Schristos    ./configure
91aaf4ece6Schristos    make
92aaf4ece6Schristos
93aaf4ece6Schristos14. How do I install a shared zlib library on Unix?
94aaf4ece6Schristos
95aaf4ece6Schristos    After the above, then:
96aaf4ece6Schristos
97aaf4ece6Schristos    make install
98aaf4ece6Schristos
99aaf4ece6Schristos    However, many flavors of Unix come with a shared zlib already installed.
100aaf4ece6Schristos    Before going to the trouble of compiling a shared version of zlib and
101aaf4ece6Schristos    trying to install it, you may want to check if it's already there!  If you
102*de1ce4f6Schristos    can #include <zlib.h>, it's there.  The -lz option will probably link to
103*de1ce4f6Schristos    it.  You can check the version at the top of zlib.h or with the
104*de1ce4f6Schristos    ZLIB_VERSION symbol defined in zlib.h .
105aaf4ece6Schristos
106aaf4ece6Schristos15. I have a question about OttoPDF.
107aaf4ece6Schristos
108aaf4ece6Schristos    We are not the authors of OttoPDF. The real author is on the OttoPDF web
109aaf4ece6Schristos    site: Joel Hainley, jhainley@myndkryme.com.
110aaf4ece6Schristos
111aaf4ece6Schristos16. Can zlib decode Flate data in an Adobe PDF file?
112aaf4ece6Schristos
113*de1ce4f6Schristos    Yes. See http://www.pdflib.com/ . To modify PDF forms, see
114*de1ce4f6Schristos    http://sourceforge.net/projects/acroformtool/ .
115aaf4ece6Schristos
116aaf4ece6Schristos17. Why am I getting this "register_frame_info not found" error on Solaris?
117aaf4ece6Schristos
118aaf4ece6Schristos    After installing zlib 1.1.4 on Solaris 2.6, running applications using zlib
119aaf4ece6Schristos    generates an error such as:
120aaf4ece6Schristos
121aaf4ece6Schristos        ld.so.1: rpm: fatal: relocation error: file /usr/local/lib/libz.so:
122aaf4ece6Schristos        symbol __register_frame_info: referenced symbol not found
123aaf4ece6Schristos
124aaf4ece6Schristos    The symbol __register_frame_info is not part of zlib, it is generated by
125aaf4ece6Schristos    the C compiler (cc or gcc).  You must recompile applications using zlib
126aaf4ece6Schristos    which have this problem.  This problem is specific to Solaris.  See
127aaf4ece6Schristos    http://www.sunfreeware.com for Solaris versions of zlib and applications
128aaf4ece6Schristos    using zlib.
129aaf4ece6Schristos
130aaf4ece6Schristos18. Why does gzip give an error on a file I make with compress/deflate?
131aaf4ece6Schristos
132aaf4ece6Schristos    The compress and deflate functions produce data in the zlib format, which
133aaf4ece6Schristos    is different and incompatible with the gzip format.  The gz* functions in
134*de1ce4f6Schristos    zlib on the other hand use the gzip format.  Both the zlib and gzip formats
135*de1ce4f6Schristos    use the same compressed data format internally, but have different headers
136*de1ce4f6Schristos    and trailers around the compressed data.
137aaf4ece6Schristos
138aaf4ece6Schristos19. Ok, so why are there two different formats?
139aaf4ece6Schristos
140*de1ce4f6Schristos    The gzip format was designed to retain the directory information about a
141*de1ce4f6Schristos    single file, such as the name and last modification date.  The zlib format
142*de1ce4f6Schristos    on the other hand was designed for in-memory and communication channel
143*de1ce4f6Schristos    applications, and has a much more compact header and trailer and uses a
144*de1ce4f6Schristos    faster integrity check than gzip.
145aaf4ece6Schristos
146aaf4ece6Schristos20. Well that's nice, but how do I make a gzip file in memory?
147aaf4ece6Schristos
148aaf4ece6Schristos    You can request that deflate write the gzip format instead of the zlib
149*de1ce4f6Schristos    format using deflateInit2().  You can also request that inflate decode the
150*de1ce4f6Schristos    gzip format using inflateInit2().  Read zlib.h for more details.
151aaf4ece6Schristos
152aaf4ece6Schristos21. Is zlib thread-safe?
153aaf4ece6Schristos
154aaf4ece6Schristos    Yes.  However any library routines that zlib uses and any application-
155aaf4ece6Schristos    provided memory allocation routines must also be thread-safe.  zlib's gz*
156aaf4ece6Schristos    functions use stdio library routines, and most of zlib's functions use the
157*de1ce4f6Schristos    library memory allocation routines by default.  zlib's *Init* functions
158*de1ce4f6Schristos    allow for the application to provide custom memory allocation routines.
159aaf4ece6Schristos
160aaf4ece6Schristos    Of course, you should only operate on any given zlib or gzip stream from a
161aaf4ece6Schristos    single thread at a time.
162aaf4ece6Schristos
163aaf4ece6Schristos22. Can I use zlib in my commercial application?
164aaf4ece6Schristos
165aaf4ece6Schristos    Yes.  Please read the license in zlib.h.
166aaf4ece6Schristos
167aaf4ece6Schristos23. Is zlib under the GNU license?
168aaf4ece6Schristos
169aaf4ece6Schristos    No.  Please read the license in zlib.h.
170aaf4ece6Schristos
171aaf4ece6Schristos24. The license says that altered source versions must be "plainly marked". So
172aaf4ece6Schristos    what exactly do I need to do to meet that requirement?
173aaf4ece6Schristos
174aaf4ece6Schristos    You need to change the ZLIB_VERSION and ZLIB_VERNUM #defines in zlib.h.  In
175aaf4ece6Schristos    particular, the final version number needs to be changed to "f", and an
176aaf4ece6Schristos    identification string should be appended to ZLIB_VERSION.  Version numbers
177aaf4ece6Schristos    x.x.x.f are reserved for modifications to zlib by others than the zlib
178aaf4ece6Schristos    maintainers.  For example, if the version of the base zlib you are altering
179aaf4ece6Schristos    is "1.2.3.4", then in zlib.h you should change ZLIB_VERNUM to 0x123f, and
180aaf4ece6Schristos    ZLIB_VERSION to something like "1.2.3.f-zachary-mods-v3".  You can also
181aaf4ece6Schristos    update the version strings in deflate.c and inftrees.c.
182aaf4ece6Schristos
183aaf4ece6Schristos    For altered source distributions, you should also note the origin and
184aaf4ece6Schristos    nature of the changes in zlib.h, as well as in ChangeLog and README, along
185aaf4ece6Schristos    with the dates of the alterations.  The origin should include at least your
186aaf4ece6Schristos    name (or your company's name), and an email address to contact for help or
187aaf4ece6Schristos    issues with the library.
188aaf4ece6Schristos
189aaf4ece6Schristos    Note that distributing a compiled zlib library along with zlib.h and
190aaf4ece6Schristos    zconf.h is also a source distribution, and so you should change
191aaf4ece6Schristos    ZLIB_VERSION and ZLIB_VERNUM and note the origin and nature of the changes
192aaf4ece6Schristos    in zlib.h as you would for a full source distribution.
193aaf4ece6Schristos
194aaf4ece6Schristos25. Will zlib work on a big-endian or little-endian architecture, and can I
195aaf4ece6Schristos    exchange compressed data between them?
196aaf4ece6Schristos
197aaf4ece6Schristos    Yes and yes.
198aaf4ece6Schristos
199aaf4ece6Schristos26. Will zlib work on a 64-bit machine?
200aaf4ece6Schristos
201*de1ce4f6Schristos    Yes.  It has been tested on 64-bit machines, and has no dependence on any
202*de1ce4f6Schristos    data types being limited to 32-bits in length.  If you have any
203aaf4ece6Schristos    difficulties, please provide a complete problem report to zlib@gzip.org
204aaf4ece6Schristos
205aaf4ece6Schristos27. Will zlib decompress data from the PKWare Data Compression Library?
206aaf4ece6Schristos
207*de1ce4f6Schristos    No.  The PKWare DCL uses a completely different compressed data format than
208*de1ce4f6Schristos    does PKZIP and zlib.  However, you can look in zlib's contrib/blast
209aaf4ece6Schristos    directory for a possible solution to your problem.
210aaf4ece6Schristos
211aaf4ece6Schristos28. Can I access data randomly in a compressed stream?
212aaf4ece6Schristos
213*de1ce4f6Schristos    No, not without some preparation.  If when compressing you periodically use
214*de1ce4f6Schristos    Z_FULL_FLUSH, carefully write all the pending data at those points, and
215*de1ce4f6Schristos    keep an index of those locations, then you can start decompression at those
216*de1ce4f6Schristos    points.  You have to be careful to not use Z_FULL_FLUSH too often, since it
217*de1ce4f6Schristos    can significantly degrade compression.  Alternatively, you can scan a
218*de1ce4f6Schristos    deflate stream once to generate an index, and then use that index for
219*de1ce4f6Schristos    random access.  See examples/zran.c .
220aaf4ece6Schristos
221aaf4ece6Schristos29. Does zlib work on MVS, OS/390, CICS, etc.?
222aaf4ece6Schristos
223*de1ce4f6Schristos    It has in the past, but we have not heard of any recent evidence.  There
224*de1ce4f6Schristos    were working ports of zlib 1.1.4 to MVS, but those links no longer work.
225*de1ce4f6Schristos    If you know of recent, successful applications of zlib on these operating
226*de1ce4f6Schristos    systems, please let us know.  Thanks.
227aaf4ece6Schristos
228*de1ce4f6Schristos30. Is there some simpler, easier to read version of inflate I can look at to
229*de1ce4f6Schristos    understand the deflate format?
230aaf4ece6Schristos
231aaf4ece6Schristos    First off, you should read RFC 1951.  Second, yes.  Look in zlib's
232aaf4ece6Schristos    contrib/puff directory.
233aaf4ece6Schristos
234aaf4ece6Schristos31. Does zlib infringe on any patents?
235aaf4ece6Schristos
236aaf4ece6Schristos    As far as we know, no.  In fact, that was originally the whole point behind
237aaf4ece6Schristos    zlib.  Look here for some more information:
238aaf4ece6Schristos
239aaf4ece6Schristos    http://www.gzip.org/#faq11
240aaf4ece6Schristos
241aaf4ece6Schristos32. Can zlib work with greater than 4 GB of data?
242aaf4ece6Schristos
243aaf4ece6Schristos    Yes.  inflate() and deflate() will process any amount of data correctly.
244aaf4ece6Schristos    Each call of inflate() or deflate() is limited to input and output chunks
245aaf4ece6Schristos    of the maximum value that can be stored in the compiler's "unsigned int"
246aaf4ece6Schristos    type, but there is no limit to the number of chunks.  Note however that the
247aaf4ece6Schristos    strm.total_in and strm_total_out counters may be limited to 4 GB.  These
248aaf4ece6Schristos    counters are provided as a convenience and are not used internally by
249aaf4ece6Schristos    inflate() or deflate().  The application can easily set up its own counters
250aaf4ece6Schristos    updated after each call of inflate() or deflate() to count beyond 4 GB.
251aaf4ece6Schristos    compress() and uncompress() may be limited to 4 GB, since they operate in a
252aaf4ece6Schristos    single call.  gzseek() and gztell() may be limited to 4 GB depending on how
253aaf4ece6Schristos    zlib is compiled.  See the zlibCompileFlags() function in zlib.h.
254aaf4ece6Schristos
255*de1ce4f6Schristos    The word "may" appears several times above since there is a 4 GB limit only
256*de1ce4f6Schristos    if the compiler's "long" type is 32 bits.  If the compiler's "long" type is
257*de1ce4f6Schristos    64 bits, then the limit is 16 exabytes.
258aaf4ece6Schristos
259aaf4ece6Schristos33. Does zlib have any security vulnerabilities?
260aaf4ece6Schristos
261*de1ce4f6Schristos    The only one that we are aware of is potentially in gzprintf().  If zlib is
262*de1ce4f6Schristos    compiled to use sprintf() or vsprintf(), then there is no protection
263*de1ce4f6Schristos    against a buffer overflow of an 8K string space (or other value as set by
264*de1ce4f6Schristos    gzbuffer()), other than the caller of gzprintf() assuring that the output
265*de1ce4f6Schristos    will not exceed 8K.  On the other hand, if zlib is compiled to use
266*de1ce4f6Schristos    snprintf() or vsnprintf(), which should normally be the case, then there is
267*de1ce4f6Schristos    no vulnerability.  The ./configure script will display warnings if an
268*de1ce4f6Schristos    insecure variation of sprintf() will be used by gzprintf().  Also the
269*de1ce4f6Schristos    zlibCompileFlags() function will return information on what variant of
270*de1ce4f6Schristos    sprintf() is used by gzprintf().
271aaf4ece6Schristos
272aaf4ece6Schristos    If you don't have snprintf() or vsnprintf() and would like one, you can
273aaf4ece6Schristos    find a portable implementation here:
274aaf4ece6Schristos
275aaf4ece6Schristos        http://www.ijs.si/software/snprintf/
276aaf4ece6Schristos
277aaf4ece6Schristos    Note that you should be using the most recent version of zlib.  Versions
278*de1ce4f6Schristos    1.1.3 and before were subject to a double-free vulnerability, and versions
279*de1ce4f6Schristos    1.2.1 and 1.2.2 were subject to an access exception when decompressing
280*de1ce4f6Schristos    invalid compressed data.
281aaf4ece6Schristos
282aaf4ece6Schristos34. Is there a Java version of zlib?
283aaf4ece6Schristos
284aaf4ece6Schristos    Probably what you want is to use zlib in Java. zlib is already included
285aaf4ece6Schristos    as part of the Java SDK in the java.util.zip package. If you really want
286aaf4ece6Schristos    a version of zlib written in the Java language, look on the zlib home
287*de1ce4f6Schristos    page for links: http://zlib.net/ .
288aaf4ece6Schristos
289aaf4ece6Schristos35. I get this or that compiler or source-code scanner warning when I crank it
290aaf4ece6Schristos    up to maximally-pedantic. Can't you guys write proper code?
291aaf4ece6Schristos
292aaf4ece6Schristos    Many years ago, we gave up attempting to avoid warnings on every compiler
293aaf4ece6Schristos    in the universe.  It just got to be a waste of time, and some compilers
294*de1ce4f6Schristos    were downright silly as well as contradicted each other.  So now, we simply
295*de1ce4f6Schristos    make sure that the code always works.
296aaf4ece6Schristos
297aaf4ece6Schristos36. Valgrind (or some similar memory access checker) says that deflate is
298aaf4ece6Schristos    performing a conditional jump that depends on an uninitialized value.
299aaf4ece6Schristos    Isn't that a bug?
300aaf4ece6Schristos
301*de1ce4f6Schristos    No.  That is intentional for performance reasons, and the output of deflate
302*de1ce4f6Schristos    is not affected.  This only started showing up recently since zlib 1.2.x
303*de1ce4f6Schristos    uses malloc() by default for allocations, whereas earlier versions used
304*de1ce4f6Schristos    calloc(), which zeros out the allocated memory.  Even though the code was
305*de1ce4f6Schristos    correct, versions 1.2.4 and later was changed to not stimulate these
306*de1ce4f6Schristos    checkers.
307aaf4ece6Schristos
308aaf4ece6Schristos37. Will zlib read the (insert any ancient or arcane format here) compressed
309aaf4ece6Schristos    data format?
310aaf4ece6Schristos
311aaf4ece6Schristos    Probably not. Look in the comp.compression FAQ for pointers to various
312aaf4ece6Schristos    formats and associated software.
313aaf4ece6Schristos
314aaf4ece6Schristos38. How can I encrypt/decrypt zip files with zlib?
315aaf4ece6Schristos
316*de1ce4f6Schristos    zlib doesn't support encryption.  The original PKZIP encryption is very
317*de1ce4f6Schristos    weak and can be broken with freely available programs.  To get strong
318*de1ce4f6Schristos    encryption, use GnuPG, http://www.gnupg.org/ , which already includes zlib
319*de1ce4f6Schristos    compression.  For PKZIP compatible "encryption", look at
320*de1ce4f6Schristos    http://www.info-zip.org/
321aaf4ece6Schristos
322aaf4ece6Schristos39. What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
323aaf4ece6Schristos
324aaf4ece6Schristos    "gzip" is the gzip format, and "deflate" is the zlib format.  They should
325*de1ce4f6Schristos    probably have called the second one "zlib" instead to avoid confusion with
326*de1ce4f6Schristos    the raw deflate compressed data format.  While the HTTP 1.1 RFC 2616
327aaf4ece6Schristos    correctly points to the zlib specification in RFC 1950 for the "deflate"
328aaf4ece6Schristos    transfer encoding, there have been reports of servers and browsers that
329aaf4ece6Schristos    incorrectly produce or expect raw deflate data per the deflate
330*de1ce4f6Schristos    specification in RFC 1951, most notably Microsoft.  So even though the
331aaf4ece6Schristos    "deflate" transfer encoding using the zlib format would be the more
332aaf4ece6Schristos    efficient approach (and in fact exactly what the zlib format was designed
333aaf4ece6Schristos    for), using the "gzip" transfer encoding is probably more reliable due to
334aaf4ece6Schristos    an unfortunate choice of name on the part of the HTTP 1.1 authors.
335aaf4ece6Schristos
336aaf4ece6Schristos    Bottom line: use the gzip format for HTTP 1.1 encoding.
337aaf4ece6Schristos
338aaf4ece6Schristos40. Does zlib support the new "Deflate64" format introduced by PKWare?
339aaf4ece6Schristos
340aaf4ece6Schristos    No.  PKWare has apparently decided to keep that format proprietary, since
341*de1ce4f6Schristos    they have not documented it as they have previous compression formats.  In
342*de1ce4f6Schristos    any case, the compression improvements are so modest compared to other more
343*de1ce4f6Schristos    modern approaches, that it's not worth the effort to implement.
344aaf4ece6Schristos
345*de1ce4f6Schristos41. I'm having a problem with the zip functions in zlib, can you help?
346*de1ce4f6Schristos
347*de1ce4f6Schristos    There are no zip functions in zlib.  You are probably using minizip by
348*de1ce4f6Schristos    Giles Vollant, which is found in the contrib directory of zlib.  It is not
349*de1ce4f6Schristos    part of zlib.  In fact none of the stuff in contrib is part of zlib.  The
350*de1ce4f6Schristos    files in there are not supported by the zlib authors.  You need to contact
351*de1ce4f6Schristos    the authors of the respective contribution for help.
352*de1ce4f6Schristos
353*de1ce4f6Schristos42. The match.asm code in contrib is under the GNU General Public License.
354*de1ce4f6Schristos    Since it's part of zlib, doesn't that mean that all of zlib falls under the
355*de1ce4f6Schristos    GNU GPL?
356*de1ce4f6Schristos
357*de1ce4f6Schristos    No.  The files in contrib are not part of zlib.  They were contributed by
358*de1ce4f6Schristos    other authors and are provided as a convenience to the user within the zlib
359*de1ce4f6Schristos    distribution.  Each item in contrib has its own license.
360*de1ce4f6Schristos
361*de1ce4f6Schristos43. Is zlib subject to export controls?  What is its ECCN?
362*de1ce4f6Schristos
363*de1ce4f6Schristos    zlib is not subject to export controls, and so is classified as EAR99.
364*de1ce4f6Schristos
365*de1ce4f6Schristos44. Can you please sign these lengthy legal documents and fax them back to us
366aaf4ece6Schristos    so that we can use your software in our product?
367aaf4ece6Schristos
368aaf4ece6Schristos    No. Go away. Shoo.
369