[Clamav-devel] Issue affecting libclamav in ClamAV 0.101.0
Micah Snyder (micasnyd)
micasnyd at cisco.com
Fri Dec 7 11:17:30 EST 2018
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.
Cisco Systems, Inc.
More information about the clamav-devel