I'm writing to let you know about an issue in ClamAV 0.101.0 impacting software 
developers that integrate libclamav into other products on Unix/Linux systems. 
The issue will result in an error when you attempt to compile against a 
system-installed libclamav.

We are working on a fix and will release an 0.101.1 patch release as soon as we 
are able to address the issue. In order to full test the fix and complete the 
due diligence required for a quality build, this will be released shortly after 
the first of the new year.

We apologize for the inconvenience.

Technical details for interested parties:

ClamAV uses a lot of mixed integer variable types internally. The preferred 
types are standard int types (eg int8_t, uint64_t, size_t, ptrdiff_t, etc).

As an ongoing effort to make variable types more consistent throughout the code 
base, we made the mistake of including the `cltypes.h` header file in 
`clamav.h`, which is not only used internally but defines the public libclamav 
API. Because neither the `cltypes.h` header, nor the supporting 
`clamav-config.h` header, are provided when installing libclamav to a system, 
applications built with a system-installed libclamav from version 0.101.0 will 
fail to compile.

To resolve the issue, we will be replacing `cltypes.h` with a new 
`clamav-types.h` file that is generated when you run `./configure` and which 
will be installed alongside `clamav.h` when you run `make install`. This will 
ensure that `clamav.h` has access to the necessary integer types on all 
operating systems and architectures.

To mitigate similar issues in the future, we are adding a test to our 
build-acceptance suite to test building an application against a 
system-installed libclamav library.


Micah Snyder
ClamAV Development
Cisco Systems, Inc.

clamav-users mailing list

Help us build a comprehensive ClamAV guide:

Reply via email to