--- Begin Message ---
Package: release.debian.org
Control: affects -1 + src:clamav
X-Debbugs-Cc: cla...@packages.debian.org
User: release.debian....@packages.debian.org
Usertags: pu
Tags: bookworm
Severity: normal
This is an update to the latest clamav release in the 1.0.x series. This
update closes two CVEs:
- CVE-2024-20290: Fixed a possible heap overflow read bug in the OLE2 file
parser that could cause a denial-of-service (DoS) condition.
- CVE-2024-20328: Fixed a possible command injection vulnerability in the
"VirusEvent" feature of ClamAV's ClamD service.
To fix this issue, we disabled the '%f' format string parameter. ClamD
administrators may continue to use the `CLAM_VIRUSEVENT_FILENAME` environment
variable, instead of '%f'. But you should do so only from within an
executable, such as a Python script, and not directly in the clamd.conf
"VirusEvent" command.
Announcement by upstream:
https://blog.clamav.net/2023/11/clamav-130-122-105-released.html
The previous 1.0.4 release was in unstable since 2024-01-20 and migrated
to testing on 2024-01-22. The 1.0.5 release is in unstable since
2024-02-08 and I have reports of issues so far.
The attached debdiff is against the current version in Bookworm and has
the libclamav_rust/.cargo/ folder omitted. Otherwise the diff grows to
over 100MiB.
Sebastian
diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml
index 6208c93..422e291 100644
--- a/.github/workflows/cmake.yml
+++ b/.github/workflows/cmake.yml
@@ -24,6 +24,10 @@ name: CMake Build
runs-on: windows-2019
steps:
+ - name: Die, link!!!!!
+ run: rm /usr/bin/link.exe
+ shell: bash
+
- uses: actions/checkout@v1
- name: Install Build Tools
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cfeeb49..b2c6533 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,7 +22,7 @@ string(TIMESTAMP TODAY "%Y%m%d")
set(VERSION_SUFFIX "")
project( ClamAV
- VERSION "1.0.3"
+ VERSION "1.0.5"
DESCRIPTION "ClamAV open source email, web, and end-point anti-virus toolkit." )
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
@@ -676,13 +676,13 @@ check_type_size("ssize_t" SIZEOF_SSIZE_T)
if(SIZEOF_SSIZE_T STREQUAL "")
# ssize_t is a signed type in POSIX storing at least -1.
# Set it to "int" to match the behavior of AC_TYPE_SSIZE_T (autotools).
- set(ssize_t int)
+ set(SSIZE_T_DEF "typedef int ssize_t;")
endif()
check_type_size("off_t" SIZEOF_OFF_T)
if(SIZEOF_OFF_T STREQUAL "")
# off_t is a signed type in POSIX no narrower than int.
# Set it to "long int" to match the behavior of AC_TYPE_OFF_T (autotools).
- set(off_t long int)
+ set(OFF_T_DEF "typedef long int off_t;")
endif()
check_type_size("int" SIZEOF_INT)
diff --git a/Cargo.lock b/Cargo.lock
index e06ab2a..05e6643 100755
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -8,26 +8,6 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-[[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi",
-]
-
[[package]]
name = "autocfg"
version = "1.1.0"
@@ -102,7 +82,6 @@ version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51e3973b165dc0f435831a9e426de67e894de532754ff7a3f307c03ee5dec7dc"
dependencies = [
- "clap",
"heck",
"indexmap",
"log",
@@ -115,6 +94,15 @@ dependencies = [
"toml",
]
+[[package]]
+name = "cc"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "cexpr"
version = "0.6.0"
@@ -160,21 +148,6 @@ dependencies = [
"libloading",
]
-[[package]]
-name = "clap"
-version = "2.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
[[package]]
name = "color_quant"
version = "1.1.0"
@@ -201,9 +174,9 @@ dependencies = [
[[package]]
name = "crossbeam-channel"
-version = "0.5.6"
+version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
dependencies = [
"cfg-if",
"crossbeam-utils",
@@ -274,6 +247,27 @@ version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+[[package]]
+name = "errno"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
[[package]]
name = "exr"
version = "1.5.3"
@@ -397,15 +391,6 @@ dependencies = [
"unicode-segmentation",
]
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
[[package]]
name = "hermit-abi"
version = "0.2.6"
@@ -415,6 +400,12 @@ dependencies = [
"libc",
]
+[[package]]
+name = "hermit-abi"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+
[[package]]
name = "hex"
version = "0.4.3"
@@ -459,6 +450,17 @@ dependencies = [
"cfg-if",
]
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi 0.3.3",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
[[package]]
name = "itoa"
version = "1.0.5"
@@ -517,6 +519,12 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "linux-raw-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+
[[package]]
name = "lock_api"
version = "0.4.9"
@@ -761,15 +769,6 @@ version = "0.6.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
-[[package]]
-name = "remove_dir_all"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-dependencies = [
- "winapi",
-]
-
[[package]]
name = "rustc-hash"
version = "1.1.0"
@@ -800,6 +799,20 @@ dependencies = [
"version_check",
]
+[[package]]
+name = "rustix"
+version = "0.36.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c37f1bd5ef1b5422177b7646cba67430579cfe2ace80f284fee876bca52ad941"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.45.0",
+]
+
[[package]]
name = "ryu"
version = "1.0.12"
@@ -880,9 +893,9 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
[[package]]
name = "spin"
-version = "0.9.5"
+version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dccf47db1b41fa1573ed27ccf5e08e3ca771cb994f776668c5ebda893b248fc"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
dependencies = [
"lock_api",
]
@@ -893,12 +906,6 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82"
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
[[package]]
name = "syn"
version = "1.0.107"
@@ -923,25 +930,15 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "3.3.0"
+version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
dependencies = [
"cfg-if",
"fastrand",
- "libc",
"redox_syscall",
- "remove_dir_all",
- "winapi",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
+ "rustix",
+ "windows-sys 0.42.0",
]
[[package]]
@@ -1021,18 +1018,6 @@ version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
-[[package]]
-name = "unicode-width"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
[[package]]
name = "version_check"
version = "0.9.4"
@@ -1138,6 +1123,153 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
[[package]]
name = "zune-inflate"
version = "0.2.42"
diff --git a/Jenkinsfile b/Jenkinsfile
index a3996e8..d59bea5 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -10,7 +10,7 @@ properties(
parameters(
[
string(name: 'VERSION',
- defaultValue: '1.0.3',
+ defaultValue: '1.0.5',
description: 'ClamAV version string'),
string(name: 'FRAMEWORK_BRANCH',
defaultValue: '1.0',
diff --git a/NEWS.md b/NEWS.md
index d11b535..ac59506 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -3,6 +3,66 @@
Note: This file refers to the official packages. Things described here may
differ slightly from third-party binary packages.
+## 1.0.5
+
+ClamAV 1.0.5 is a critical patch release with the following fixes:
+
+- [CVE-2024-20290](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-20290):
+ Fixed a possible heap overflow read bug in the OLE2 file parser that could
+ cause a denial-of-service (DoS) condition.
+
+ Affected versions:
+ - 1.0.0 through 1.0.4 (LTS)
+ - 1.1 (all patch versions)
+ - 1.2.0 and 1.2.1
+
+ Thank you to OSS-Fuzz for identifying this issue.
+
+- [CVE-2024-20328](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-20328):
+ Fixed a possible command injection vulnerability in the `VirusEvent` feature
+ of ClamAV's ClamD service.
+
+ To fix this issue, we disabled the '%f' format string parameter.
+ ClamD administrators may continue to use the `CLAM_VIRUSEVENT_FILENAME`
+ environment variable, instead of '%f'. But you should do so only from within
+ an executable, such as a Python script, and not directly in the `clamd.conf`
+ `VirusEvent` command.
+
+ Affected versions:
+ - 0.104 (all patch versions)
+ - 0.105 (all patch versions)
+ - 1.0.0 through 1.0.4 (LTS)
+ - 1.1 (all patch versions)
+ - 1.2.0 and 1.2.1
+
+ Thank you to Amit Schendel for identifying this issue.
+
+## 1.0.4
+
+ClamAV 1.0.4 is a patch release with the following fixes:
+
+- Eliminate security warning about unused "atty" dependency.
+ - GitHub pull request: https://github.com/Cisco-Talos/clamav/pull/1035
+
+- Upgrade the bundled UnRAR library (libclamunrar) to version 6.2.12.
+ - GitHub pull request: https://github.com/Cisco-Talos/clamav/pull/1054
+
+- Windows: libjson-c 0.17 compatibility fix. with ssize_t type definition.
+ - GitHub pull request: https://github.com/Cisco-Talos/clamav/pull/1064
+
+- Freshclam: Removed a verbose warning printed for each Freshclam HTTP request.
+ - GitHub pull request: https://github.com/Cisco-Talos/clamav/pull/1042
+
+- Build system: Fix link error with Clang/LLVM/LLD version 17.
+ Patch courtesy of Yasuhiro Kimura.
+ - GitHub pull request: https://github.com/Cisco-Talos/clamav/pull/1058
+
+- Fix alert-exceeds-max feature for files > 2GB and < max-filesize.
+ - GitHub pull request: https://github.com/Cisco-Talos/clamav/pull/1041
+
+Special thanks to the following people for code contributions and bug reports:
+- Yasuhiro Kimura
+
## 1.0.3
ClamAV 1.0.3 is a critical patch release with the following fixes:
diff --git a/clamav-config.h.cmake.in b/clamav-config.h.cmake.in
index b21af87..4f3b837 100644
--- a/clamav-config.h.cmake.in
+++ b/clamav-config.h.cmake.in
@@ -587,11 +587,22 @@
#define inline @INLINE_KEYWORD@
#endif
-/* Define to `long int' if <sys/types.h> does not define. */
-#cmakedefine off_t @off_t@
-
/* Define to `int' if <sys/types.h> does not define. */
-#cmakedefine ssize_t @ssize_t@
+#ifndef SSIZE_T_DEFINED
+ #if defined(_MSC_VER)
+ #include <BaseTsd.h>
+ typedef SSIZE_T ssize_t;
+ #else
+ @SSIZE_T_DEF@
+ #endif
+ # define SSIZE_T_DEFINED
+#endif
+
+/* Define to `long int' if <sys/types.h> does not define. */
+#ifndef OFF_T_DEFINED
+ @OFF_T_DEF@
+ #define OFF_T_DEFINED
+#endif
/* Define to the equivalent of the C99 'restrict' keyword, or to
nothing if this is not supported. Do not define if restrict is
diff --git a/clamd/clamd_others.c b/clamd/clamd_others.c
index 23f3b02..32d0701 100644
--- a/clamd/clamd_others.c
+++ b/clamd/clamd_others.c
@@ -101,6 +101,8 @@ void virusaction(const char *filename, const char *virname,
#define VE_FILENAME "CLAM_VIRUSEVENT_FILENAME"
#define VE_VIRUSNAME "CLAM_VIRUSEVENT_VIRUSNAME"
+#define FILENAME_DISABLED_MESSAGE "The filename format character has been disabled due to security concerns, use the 'CLAM_VIRUSEVENT_FILENAME' environment variable instead."
+
void virusaction(const char *filename, const char *virname,
const struct optstruct *opts)
{
@@ -145,7 +147,7 @@ void virusaction(const char *filename, const char *virname,
}
len = strlen(opt->strarg);
buffer_cmd =
- (char *)calloc(len + v * strlen(virname) + f * strlen(filename) + 1, sizeof(char));
+ (char *)calloc(len + v * strlen(virname) + f * strlen(FILENAME_DISABLED_MESSAGE) + 1, sizeof(char));
if (!buffer_cmd) {
if (path)
xfree(env[0]);
@@ -160,8 +162,8 @@ void virusaction(const char *filename, const char *virname,
j += strlen(virname);
i++;
} else if (i + 1 < len && opt->strarg[i] == '%' && opt->strarg[i + 1] == 'f') {
- strcat(buffer_cmd, filename);
- j += strlen(filename);
+ strcat(buffer_cmd, FILENAME_DISABLED_MESSAGE);
+ j += strlen(FILENAME_DISABLED_MESSAGE);
i++;
} else {
buffer_cmd[j++] = opt->strarg[i];
diff --git a/common/optparser.c b/common/optparser.c
index a7bdbee..1be7afe 100644
--- a/common/optparser.c
+++ b/common/optparser.c
@@ -333,7 +333,7 @@ const struct clam_option __clam_options[] = {
{"DisableCache", "disable-cache", 0, CLOPT_TYPE_BOOL, MATCH_BOOL, 0, NULL, 0, OPT_CLAMD | OPT_CLAMSCAN, "This option allows you to disable clamd's caching feature.", "no"},
- {"VirusEvent", NULL, 0, CLOPT_TYPE_STRING, NULL, -1, NULL, 0, OPT_CLAMD, "Execute a command when a virus is found. In the command string %v will be\nreplaced with the virus name and %f will be replaced with the file name.\nAdditionally, two environment variables will be defined: $CLAM_VIRUSEVENT_FILENAME\nand $CLAM_VIRUSEVENT_VIRUSNAME.", "/usr/bin/mailx -s \"ClamAV VIRUS ALERT: %v\" alert < /dev/null"},
+ {"VirusEvent", NULL, 0, CLOPT_TYPE_STRING, NULL, -1, NULL, 0, OPT_CLAMD, "Execute a command when virus is found.\nUse the following environment variables to identify the file and virus names:\n- $CLAM_VIRUSEVENT_FILENAME\n- $CLAM_VIRUSEVENT_VIRUSNAME\nIn the command string, '%v' will also be replaced with the virus name.\nNote: The '%f' filename format character has been disabled and will no longer\nbe replaced with the file name, due to command injection security concerns.\nUse the 'CLAM_VIRUSEVENT_FILENAME' environment variable instead.\nFor the same reason, you should NOT use the environment variables in the\ncommand directly, but should use it carefully from your executed script.", "/opt/send_virus_alert_sms.sh"},
{"ExitOnOOM", NULL, 0, CLOPT_TYPE_BOOL, MATCH_BOOL, 0, NULL, 0, OPT_CLAMD, "Stop the daemon when libclamav reports an out of memory condition.", "yes"},
diff --git a/debian/.git-dpm b/debian/.git-dpm
index dafa965..b364a80 100644
--- a/debian/.git-dpm
+++ b/debian/.git-dpm
@@ -1,8 +1,8 @@
# see git-dpm(1) from git-dpm package
-b6798c1c1c1bd4e43f1ffbc36748adb5cf07787a
-b6798c1c1c1bd4e43f1ffbc36748adb5cf07787a
-6aeff1ef1ff425a1a201d8e3f2c5b8b1f8a60fdb
-6aeff1ef1ff425a1a201d8e3f2c5b8b1f8a60fdb
-clamav_1.0.3+dfsg.orig.tar.xz
-329456b2e5930a422859b00ed0e08cc8ab53e2b3
-14191252
+62cd02dc40f3fd1a26496091133787db33dd65e7
+62cd02dc40f3fd1a26496091133787db33dd65e7
+3075ec387d1332975da55d4c08f4463a4fc82909
+3075ec387d1332975da55d4c08f4463a4fc82909
+clamav_1.0.5+dfsg.orig.tar.xz
+f4f5016ce9ff75ad1db40f3475c100dc5fd87243
+25821000
diff --git a/debian/changelog b/debian/changelog
index 36fd23b..158545e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,21 @@
+clamav (1.0.5+dfsg-1~deb12u1) bookworm; urgency=medium
+
+ * Import 1.0.4 (Closes: #1063479).
+ - Update symbols.
+ - CVE-2024-20290 (Fixed a possible heap overflow read bug in the OLE2 file
+ parser that could cause a denial-of-service (DoS) condition.)
+ - CVE-2024-20328 (Fixed a possible command injection vulnerability in the
+ "VirusEvent" feature of ClamAV's ClamD service.
+
+ -- Sebastian Andrzej Siewior <sebast...@breakpoint.cc> Thu, 08 Feb 2024 21:58:26 +0100
+
+clamav (1.0.4+dfsg-1~deb12u1) bookworm; urgency=medium
+
+ * Import 1.0.4
+ - Update symbols.
+
+ -- Sebastian Andrzej Siewior <sebast...@breakpoint.cc> Sun, 04 Feb 2024 11:45:46 +0100
+
clamav (1.0.3+dfsg-1~deb12u1) bookworm; urgency=medium
* Import 1.0.3
diff --git a/debian/libclamav11.symbols b/debian/libclamav11.symbols
index 909b601..b451f3a 100644
--- a/debian/libclamav11.symbols
+++ b/debian/libclamav11.symbols
@@ -1,25 +1,25 @@
libclamav.so.11 libclamav11 #MINVER#
* Build-Depends-Package: libclamav-dev
- CLAMAV_PRIVATE@CLAMAV_PRIVATE 1.0.3
+ CLAMAV_PRIVATE@CLAMAV_PRIVATE 1.0.5
CLAMAV_PUBLIC@CLAMAV_PUBLIC 1.0.0
- __cli_strcasestr@CLAMAV_PRIVATE 1.0.3
- __cli_strndup@CLAMAV_PRIVATE 1.0.3
- __cli_strnlen@CLAMAV_PRIVATE 1.0.3
- __cli_strnstr@CLAMAV_PRIVATE 1.0.3
- base64Flush@CLAMAV_PRIVATE 1.0.3
- blobAddData@CLAMAV_PRIVATE 1.0.3
- blobCreate@CLAMAV_PRIVATE 1.0.3
- blobDestroy@CLAMAV_PRIVATE 1.0.3
- cl_ASN1_GetTimeT@CLAMAV_PRIVATE 1.0.3
+ __cli_strcasestr@CLAMAV_PRIVATE 1.0.5
+ __cli_strndup@CLAMAV_PRIVATE 1.0.5
+ __cli_strnlen@CLAMAV_PRIVATE 1.0.5
+ __cli_strnstr@CLAMAV_PRIVATE 1.0.5
+ base64Flush@CLAMAV_PRIVATE 1.0.5
+ blobAddData@CLAMAV_PRIVATE 1.0.5
+ blobCreate@CLAMAV_PRIVATE 1.0.5
+ blobDestroy@CLAMAV_PRIVATE 1.0.5
+ cl_ASN1_GetTimeT@CLAMAV_PRIVATE 1.0.5
cl_always_gen_section_hash@CLAMAV_PUBLIC 1.0.0
- cl_base64_decode@CLAMAV_PRIVATE 1.0.3
- cl_base64_encode@CLAMAV_PRIVATE 1.0.3
- cl_cleanup_crypto@CLAMAV_PRIVATE 1.0.3
+ cl_base64_decode@CLAMAV_PRIVATE 1.0.5
+ cl_base64_encode@CLAMAV_PRIVATE 1.0.5
+ cl_cleanup_crypto@CLAMAV_PRIVATE 1.0.5
cl_countsigs@CLAMAV_PUBLIC 1.0.0
cl_cvdfree@CLAMAV_PUBLIC 1.0.0
cl_cvdhead@CLAMAV_PUBLIC 1.0.0
cl_cvdparse@CLAMAV_PUBLIC 1.0.0
- cl_cvdunpack@CLAMAV_PRIVATE 1.0.3
+ cl_cvdunpack@CLAMAV_PRIVATE 1.0.5
cl_cvdverify@CLAMAV_PUBLIC 1.0.0
cl_debug@CLAMAV_PUBLIC 1.0.0
cl_engine_addref@CLAMAV_PUBLIC 1.0.0
@@ -28,7 +28,7 @@ libclamav.so.11 libclamav11 #MINVER#
cl_engine_get_num@CLAMAV_PUBLIC 1.0.0
cl_engine_get_str@CLAMAV_PUBLIC 1.0.0
cl_engine_new@CLAMAV_PUBLIC 1.0.0
- cl_engine_set_clcb_engine_compile_progress@CLAMAV_PRIVATE 1.0.3
+ cl_engine_set_clcb_engine_compile_progress@CLAMAV_PRIVATE 1.0.5
cl_engine_set_clcb_file_inspection@CLAMAV_PUBLIC 1.0.0
cl_engine_set_clcb_file_props@CLAMAV_PUBLIC 1.0.0
cl_engine_set_clcb_hash@CLAMAV_PUBLIC 1.0.0
@@ -37,7 +37,7 @@ libclamav.so.11 libclamav11 #MINVER#
cl_engine_set_clcb_pre_cache@CLAMAV_PUBLIC 1.0.0
cl_engine_set_clcb_pre_scan@CLAMAV_PUBLIC 1.0.0
cl_engine_set_clcb_sigload@CLAMAV_PUBLIC 1.0.0
- cl_engine_set_clcb_sigload_progress@CLAMAV_PRIVATE 1.0.3
+ cl_engine_set_clcb_sigload_progress@CLAMAV_PRIVATE 1.0.5
cl_engine_set_clcb_stats_add_sample@CLAMAV_PUBLIC 1.0.0
cl_engine_set_clcb_stats_decrement_count@CLAMAV_PUBLIC 1.0.0
cl_engine_set_clcb_stats_flush@CLAMAV_PUBLIC 1.0.0
@@ -58,21 +58,21 @@ libclamav.so.11 libclamav11 #MINVER#
cl_fmap_close@CLAMAV_PUBLIC 1.0.0
cl_fmap_open_handle@CLAMAV_PUBLIC 1.0.0
cl_fmap_open_memory@CLAMAV_PUBLIC 1.0.0
- cl_get_pkey_file@CLAMAV_PRIVATE 1.0.3
- cl_get_x509_from_mem@CLAMAV_PRIVATE 1.0.3
- cl_hash_data@CLAMAV_PRIVATE 1.0.3
+ cl_get_pkey_file@CLAMAV_PRIVATE 1.0.5
+ cl_get_x509_from_mem@CLAMAV_PRIVATE 1.0.5
+ cl_hash_data@CLAMAV_PRIVATE 1.0.5
cl_hash_destroy@CLAMAV_PUBLIC 1.0.0
- cl_hash_file_fd@CLAMAV_PRIVATE 1.0.3
- cl_hash_file_fd_ctx@CLAMAV_PRIVATE 1.0.3
- cl_hash_file_fp@CLAMAV_PRIVATE 1.0.3
+ cl_hash_file_fd@CLAMAV_PRIVATE 1.0.5
+ cl_hash_file_fd_ctx@CLAMAV_PRIVATE 1.0.5
+ cl_hash_file_fp@CLAMAV_PRIVATE 1.0.5
cl_hash_init@CLAMAV_PUBLIC 1.0.0
cl_init@CLAMAV_PUBLIC 1.0.0
- cl_initialize_crypto@CLAMAV_PRIVATE 1.0.3
+ cl_initialize_crypto@CLAMAV_PRIVATE 1.0.5
cl_load@CLAMAV_PUBLIC 1.0.0
- cl_load_cert@CLAMAV_PRIVATE 1.0.3
- cl_load_crl@CLAMAV_PRIVATE 1.0.3
+ cl_load_cert@CLAMAV_PRIVATE 1.0.5
+ cl_load_crl@CLAMAV_PRIVATE 1.0.5
cl_retdbdir@CLAMAV_PUBLIC 1.0.0
- cl_retflevel@CLAMAV_PUBLIC 1.0.3
+ cl_retflevel@CLAMAV_PUBLIC 1.0.5
cl_retver@CLAMAV_PUBLIC 1.0.0
cl_scandesc@CLAMAV_PUBLIC 1.0.0
cl_scandesc_callback@CLAMAV_PUBLIC 1.0.0
@@ -80,203 +80,203 @@ libclamav.so.11 libclamav11 #MINVER#
cl_scanfile_callback@CLAMAV_PUBLIC 1.0.0
cl_scanmap_callback@CLAMAV_PUBLIC 1.0.0
cl_set_clcb_msg@CLAMAV_PUBLIC 1.0.0
- cl_sha1@CLAMAV_PRIVATE 1.0.3
- cl_sha256@CLAMAV_PRIVATE 1.0.3
- cl_sign_data@CLAMAV_PRIVATE 1.0.3
- cl_sign_data_keyfile@CLAMAV_PRIVATE 1.0.3
- cl_sign_file_fd@CLAMAV_PRIVATE 1.0.3
- cl_sign_file_fp@CLAMAV_PRIVATE 1.0.3
+ cl_sha1@CLAMAV_PRIVATE 1.0.5
+ cl_sha256@CLAMAV_PRIVATE 1.0.5
+ cl_sign_data@CLAMAV_PRIVATE 1.0.5
+ cl_sign_data_keyfile@CLAMAV_PRIVATE 1.0.5
+ cl_sign_file_fd@CLAMAV_PRIVATE 1.0.5
+ cl_sign_file_fp@CLAMAV_PRIVATE 1.0.5
cl_statchkdir@CLAMAV_PUBLIC 1.0.0
cl_statfree@CLAMAV_PUBLIC 1.0.0
cl_statinidir@CLAMAV_PUBLIC 1.0.0
cl_strerror@CLAMAV_PUBLIC 1.0.0
cl_update_hash@CLAMAV_PUBLIC 1.0.0
- cl_validate_certificate_chain@CLAMAV_PRIVATE 1.0.3
- cl_validate_certificate_chain_ts_dir@CLAMAV_PRIVATE 1.0.3
- cl_verify_signature@CLAMAV_PRIVATE 1.0.3
- cl_verify_signature_fd@CLAMAV_PRIVATE 1.0.3
- cl_verify_signature_fd_x509@CLAMAV_PRIVATE 1.0.3
- cl_verify_signature_fd_x509_keyfile@CLAMAV_PRIVATE 1.0.3
- cl_verify_signature_hash@CLAMAV_PRIVATE 1.0.3
- cl_verify_signature_hash_x509@CLAMAV_PRIVATE 1.0.3
- cl_verify_signature_hash_x509_keyfile@CLAMAV_PRIVATE 1.0.3
- cl_verify_signature_x509@CLAMAV_PRIVATE 1.0.3
- cl_verify_signature_x509_keyfile@CLAMAV_PRIVATE 1.0.3
- cli_ac_buildtrie@CLAMAV_PRIVATE 1.0.3
- cli_ac_chklsig@CLAMAV_PRIVATE 1.0.3
- cli_ac_free@CLAMAV_PRIVATE 1.0.3
- cli_ac_freedata@CLAMAV_PRIVATE 1.0.3
- cli_ac_init@CLAMAV_PRIVATE 1.0.3
- cli_ac_initdata@CLAMAV_PRIVATE 1.0.3
- cli_ac_scanbuff@CLAMAV_PRIVATE 1.0.3
- cli_add_content_match_pattern@CLAMAV_PRIVATE 1.0.3
- cli_basename@CLAMAV_PRIVATE 1.0.3
- cli_bm_free@CLAMAV_PRIVATE 1.0.3
- cli_bm_init@CLAMAV_PRIVATE 1.0.3
- cli_bm_scanbuff@CLAMAV_PRIVATE 1.0.3
- cli_build_regex_list@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_context_alloc@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_context_destroy@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_context_getresult_int@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_context_set_trace@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_context_setfile@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_context_setfuncid@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_context_setparam_int@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_context_setparam_ptr@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_debug@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_debug_printsrc@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_describe@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_destroy@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_done@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_init@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_load@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_prepare2@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_printversion@CLAMAV_PRIVATE 1.0.3
- cli_bytecode_run@CLAMAV_PRIVATE 1.0.3
- cli_bytefunc_describe@CLAMAV_PRIVATE 1.0.3
- cli_byteinst_describe@CLAMAV_PRIVATE 1.0.3
- cli_bytetype_describe@CLAMAV_PRIVATE 1.0.3
- cli_bytevalue_describe@CLAMAV_PRIVATE 1.0.3
- cli_calloc@CLAMAV_PRIVATE 1.0.3
- cli_check_auth_header@CLAMAV_PRIVATE 1.0.3
- cli_chomp@CLAMAV_PRIVATE 1.0.3
- cli_codepage_to_utf8@CLAMAV_PRIVATE 1.0.3
- cli_ctime@CLAMAV_PRIVATE 1.0.3
- cli_dbgmsg@CLAMAV_PRIVATE 1.0.3
- cli_dbgmsg_no_inline@CLAMAV_PRIVATE 1.0.3
- cli_dconf_init@CLAMAV_PRIVATE 1.0.3
- cli_debug_flag@CLAMAV_PRIVATE 1.0.3
- cli_detect_environment@CLAMAV_PRIVATE 1.0.3
- cli_disasm_one@CLAMAV_PRIVATE 1.0.3
- cli_errmsg@CLAMAV_PRIVATE 1.0.3
- cli_filecopy@CLAMAV_PRIVATE 1.0.3
- cli_free_vba_project@CLAMAV_PRIVATE 1.0.3
- cli_ftw@CLAMAV_PRIVATE 1.0.3
- cli_genhash_pe@CLAMAV_PRIVATE 1.0.3
- cli_gentemp@CLAMAV_PRIVATE 1.0.3
- cli_gentemp_with_prefix@CLAMAV_PRIVATE 1.0.3
- cli_gentempfd@CLAMAV_PRIVATE 1.0.3
- cli_gentempfd_with_prefix@CLAMAV_PRIVATE 1.0.3
- cli_get_debug_flag@CLAMAV_PRIVATE 1.0.3
- cli_get_filepath_from_filedesc@CLAMAV_PRIVATE 1.0.3
- cli_get_last_virus_str@CLAMAV_PRIVATE 1.0.3
- cli_getdsig@CLAMAV_PRIVATE 1.0.3
- cli_gettmpdir@CLAMAV_PRIVATE 1.0.3
- cli_hashfile@CLAMAV_PRIVATE 1.0.3
- cli_hashset_destroy@CLAMAV_PRIVATE 1.0.3
- cli_hashstream@CLAMAV_PRIVATE 1.0.3
- cli_hex2str@CLAMAV_PRIVATE 1.0.3
- cli_hex2ui@CLAMAV_PRIVATE 1.0.3
- cli_infomsg_simple@CLAMAV_PRIVATE 1.0.3
- cli_initroots@CLAMAV_PRIVATE 1.0.3
- cli_isnumber@CLAMAV_PRIVATE 1.0.3
- cli_js_destroy@CLAMAV_PRIVATE 1.0.3
- cli_js_init@CLAMAV_PRIVATE 1.0.3
- cli_js_output@CLAMAV_PRIVATE 1.0.3
- cli_js_parse_done@CLAMAV_PRIVATE 1.0.3
- cli_js_process_buffer@CLAMAV_PRIVATE 1.0.3
- cli_ldbtokenize@CLAMAV_PRIVATE 1.0.3
- cli_malloc@CLAMAV_PRIVATE 1.0.3
- cli_memstr@CLAMAV_PRIVATE 1.0.3
- cli_ole2_extract@CLAMAV_PRIVATE 1.0.3
- cli_pcre_build@CLAMAV_PRIVATE 1.0.3
- cli_pcre_freeoff@CLAMAV_PRIVATE 1.0.3
- cli_pcre_init@CLAMAV_PRIVATE 1.0.3
- cli_pcre_perf_events_destroy@CLAMAV_PRIVATE 1.0.3
- cli_pcre_perf_print@CLAMAV_PRIVATE 1.0.3
- cli_pcre_recaloff@CLAMAV_PRIVATE 1.0.3
- cli_pcre_scanbuf@CLAMAV_PRIVATE 1.0.3
- cli_ppt_vba_read@CLAMAV_PRIVATE 1.0.3
- cli_printcxxver@CLAMAV_PRIVATE 1.0.3
- cli_readn@CLAMAV_PRIVATE 1.0.3
- cli_realloc@CLAMAV_PRIVATE 1.0.3
- cli_realpath@CLAMAV_PRIVATE 1.0.3
- cli_regcomp@CLAMAV_PRIVATE 1.0.3
- cli_regex2suffix@CLAMAV_PRIVATE 1.0.3
- cli_regexec@CLAMAV_PRIVATE 1.0.3
- cli_regfree@CLAMAV_PRIVATE 1.0.3
- cli_rmdirs@CLAMAV_PRIVATE 1.0.3
- cli_rndnum@CLAMAV_PRIVATE 1.0.3
- cli_sanitize_filepath@CLAMAV_PRIVATE 1.0.3
- cli_scan_buff@CLAMAV_PRIVATE 1.0.3
- cli_scan_fmap@CLAMAV_PRIVATE 1.0.3
- cli_set_debug_flag@CLAMAV_PRIVATE 1.0.3
- cli_sigopts_handler@CLAMAV_PRIVATE 1.0.3
- cli_sigperf_events_destroy@CLAMAV_PRIVATE 1.0.3
- cli_sigperf_print@CLAMAV_PRIVATE 1.0.3
- cli_str2hex@CLAMAV_PRIVATE 1.0.3
- cli_strbcasestr@CLAMAV_PRIVATE 1.0.3
- cli_strdup@CLAMAV_PRIVATE 1.0.3
- cli_strerror@CLAMAV_PRIVATE 1.0.3
- cli_strlcat@CLAMAV_PRIVATE 1.0.3
- cli_strlcpy@CLAMAV_PRIVATE 1.0.3
- cli_strntoul@CLAMAV_PRIVATE 1.0.3
- cli_strrcpy@CLAMAV_PRIVATE 1.0.3
- cli_strtok@CLAMAV_PRIVATE 1.0.3
- cli_strtokbuf@CLAMAV_PRIVATE 1.0.3
- cli_strtokenize@CLAMAV_PRIVATE 1.0.3
- cli_textbuffer_append_normalize@CLAMAV_PRIVATE 1.0.3
- cli_unescape@CLAMAV_PRIVATE 1.0.3
- cli_unlink@CLAMAV_PRIVATE 1.0.3
- cli_url_canon@CLAMAV_PRIVATE 1.0.3
- cli_utf16_to_utf8@CLAMAV_PRIVATE 1.0.3
- cli_utf16toascii@CLAMAV_PRIVATE 1.0.3
- cli_vba_inflate@CLAMAV_PRIVATE 1.0.3
- cli_vba_readdir@CLAMAV_PRIVATE 1.0.3
- cli_versig2@CLAMAV_PRIVATE 1.0.3
- cli_versig@CLAMAV_PRIVATE 1.0.3
- cli_warnmsg@CLAMAV_PRIVATE 1.0.3
- cli_wm_decrypt_macro@CLAMAV_PRIVATE 1.0.3
- cli_wm_readdir@CLAMAV_PRIVATE 1.0.3
- cli_writen@CLAMAV_PRIVATE 1.0.3
- decodeLine@CLAMAV_PRIVATE 1.0.3
- disasmbuf@CLAMAV_PRIVATE 1.0.3
- fmap@CLAMAV_PRIVATE 1.0.3
- fmap_dump_to_file@CLAMAV_PRIVATE 1.0.3
- fmap_duplicate@CLAMAV_PRIVATE 1.0.3
- free_duplicate_fmap@CLAMAV_PRIVATE 1.0.3
- get_fpu_endian@CLAMAV_PRIVATE 1.0.3
- have_clamjit@CLAMAV_PRIVATE 1.0.3
- have_rar@CLAMAV_PRIVATE 1.0.3
- html_normalise_map@CLAMAV_PRIVATE 1.0.3
- html_normalise_mem@CLAMAV_PRIVATE 1.0.3
- html_screnc_decode@CLAMAV_PRIVATE 1.0.3
- html_tag_arg_free@CLAMAV_PRIVATE 1.0.3
- init_allow_list@CLAMAV_PRIVATE 1.0.3
- init_domain_list@CLAMAV_PRIVATE 1.0.3
- init_regex_list@CLAMAV_PRIVATE 1.0.3
- is_regex_ok@CLAMAV_PRIVATE 1.0.3
- load_regex_matcher@CLAMAV_PRIVATE 1.0.3
- lsig_increment_subsig_match@CLAMAV_PRIVATE 1.0.3
+ cl_validate_certificate_chain@CLAMAV_PRIVATE 1.0.5
+ cl_validate_certificate_chain_ts_dir@CLAMAV_PRIVATE 1.0.5
+ cl_verify_signature@CLAMAV_PRIVATE 1.0.5
+ cl_verify_signature_fd@CLAMAV_PRIVATE 1.0.5
+ cl_verify_signature_fd_x509@CLAMAV_PRIVATE 1.0.5
+ cl_verify_signature_fd_x509_keyfile@CLAMAV_PRIVATE 1.0.5
+ cl_verify_signature_hash@CLAMAV_PRIVATE 1.0.5
+ cl_verify_signature_hash_x509@CLAMAV_PRIVATE 1.0.5
+ cl_verify_signature_hash_x509_keyfile@CLAMAV_PRIVATE 1.0.5
+ cl_verify_signature_x509@CLAMAV_PRIVATE 1.0.5
+ cl_verify_signature_x509_keyfile@CLAMAV_PRIVATE 1.0.5
+ cli_ac_buildtrie@CLAMAV_PRIVATE 1.0.5
+ cli_ac_chklsig@CLAMAV_PRIVATE 1.0.5
+ cli_ac_free@CLAMAV_PRIVATE 1.0.5
+ cli_ac_freedata@CLAMAV_PRIVATE 1.0.5
+ cli_ac_init@CLAMAV_PRIVATE 1.0.5
+ cli_ac_initdata@CLAMAV_PRIVATE 1.0.5
+ cli_ac_scanbuff@CLAMAV_PRIVATE 1.0.5
+ cli_add_content_match_pattern@CLAMAV_PRIVATE 1.0.5
+ cli_basename@CLAMAV_PRIVATE 1.0.5
+ cli_bm_free@CLAMAV_PRIVATE 1.0.5
+ cli_bm_init@CLAMAV_PRIVATE 1.0.5
+ cli_bm_scanbuff@CLAMAV_PRIVATE 1.0.5
+ cli_build_regex_list@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_context_alloc@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_context_destroy@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_context_getresult_int@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_context_set_trace@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_context_setfile@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_context_setfuncid@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_context_setparam_int@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_context_setparam_ptr@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_debug@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_debug_printsrc@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_describe@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_destroy@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_done@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_init@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_load@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_prepare2@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_printversion@CLAMAV_PRIVATE 1.0.5
+ cli_bytecode_run@CLAMAV_PRIVATE 1.0.5
+ cli_bytefunc_describe@CLAMAV_PRIVATE 1.0.5
+ cli_byteinst_describe@CLAMAV_PRIVATE 1.0.5
+ cli_bytetype_describe@CLAMAV_PRIVATE 1.0.5
+ cli_bytevalue_describe@CLAMAV_PRIVATE 1.0.5
+ cli_calloc@CLAMAV_PRIVATE 1.0.5
+ cli_check_auth_header@CLAMAV_PRIVATE 1.0.5
+ cli_chomp@CLAMAV_PRIVATE 1.0.5
+ cli_codepage_to_utf8@CLAMAV_PRIVATE 1.0.5
+ cli_ctime@CLAMAV_PRIVATE 1.0.5
+ cli_dbgmsg@CLAMAV_PRIVATE 1.0.5
+ cli_dbgmsg_no_inline@CLAMAV_PRIVATE 1.0.5
+ cli_dconf_init@CLAMAV_PRIVATE 1.0.5
+ cli_debug_flag@CLAMAV_PRIVATE 1.0.5
+ cli_detect_environment@CLAMAV_PRIVATE 1.0.5
+ cli_disasm_one@CLAMAV_PRIVATE 1.0.5
+ cli_errmsg@CLAMAV_PRIVATE 1.0.5
+ cli_filecopy@CLAMAV_PRIVATE 1.0.5
+ cli_free_vba_project@CLAMAV_PRIVATE 1.0.5
+ cli_ftw@CLAMAV_PRIVATE 1.0.5
+ cli_genhash_pe@CLAMAV_PRIVATE 1.0.5
+ cli_gentemp@CLAMAV_PRIVATE 1.0.5
+ cli_gentemp_with_prefix@CLAMAV_PRIVATE 1.0.5
+ cli_gentempfd@CLAMAV_PRIVATE 1.0.5
+ cli_gentempfd_with_prefix@CLAMAV_PRIVATE 1.0.5
+ cli_get_debug_flag@CLAMAV_PRIVATE 1.0.5
+ cli_get_filepath_from_filedesc@CLAMAV_PRIVATE 1.0.5
+ cli_get_last_virus_str@CLAMAV_PRIVATE 1.0.5
+ cli_getdsig@CLAMAV_PRIVATE 1.0.5
+ cli_gettmpdir@CLAMAV_PRIVATE 1.0.5
+ cli_hashfile@CLAMAV_PRIVATE 1.0.5
+ cli_hashset_destroy@CLAMAV_PRIVATE 1.0.5
+ cli_hashstream@CLAMAV_PRIVATE 1.0.5
+ cli_hex2str@CLAMAV_PRIVATE 1.0.5
+ cli_hex2ui@CLAMAV_PRIVATE 1.0.5
+ cli_infomsg_simple@CLAMAV_PRIVATE 1.0.5
+ cli_initroots@CLAMAV_PRIVATE 1.0.5
+ cli_isnumber@CLAMAV_PRIVATE 1.0.5
+ cli_js_destroy@CLAMAV_PRIVATE 1.0.5
+ cli_js_init@CLAMAV_PRIVATE 1.0.5
+ cli_js_output@CLAMAV_PRIVATE 1.0.5
+ cli_js_parse_done@CLAMAV_PRIVATE 1.0.5
+ cli_js_process_buffer@CLAMAV_PRIVATE 1.0.5
+ cli_ldbtokenize@CLAMAV_PRIVATE 1.0.5
+ cli_malloc@CLAMAV_PRIVATE 1.0.5
+ cli_memstr@CLAMAV_PRIVATE 1.0.5
+ cli_ole2_extract@CLAMAV_PRIVATE 1.0.5
+ cli_pcre_build@CLAMAV_PRIVATE 1.0.5
+ cli_pcre_freeoff@CLAMAV_PRIVATE 1.0.5
+ cli_pcre_init@CLAMAV_PRIVATE 1.0.5
+ cli_pcre_perf_events_destroy@CLAMAV_PRIVATE 1.0.5
+ cli_pcre_perf_print@CLAMAV_PRIVATE 1.0.5
+ cli_pcre_recaloff@CLAMAV_PRIVATE 1.0.5
+ cli_pcre_scanbuf@CLAMAV_PRIVATE 1.0.5
+ cli_ppt_vba_read@CLAMAV_PRIVATE 1.0.5
+ cli_printcxxver@CLAMAV_PRIVATE 1.0.5
+ cli_readn@CLAMAV_PRIVATE 1.0.5
+ cli_realloc@CLAMAV_PRIVATE 1.0.5
+ cli_realpath@CLAMAV_PRIVATE 1.0.5
+ cli_regcomp@CLAMAV_PRIVATE 1.0.5
+ cli_regex2suffix@CLAMAV_PRIVATE 1.0.5
+ cli_regexec@CLAMAV_PRIVATE 1.0.5
+ cli_regfree@CLAMAV_PRIVATE 1.0.5
+ cli_rmdirs@CLAMAV_PRIVATE 1.0.5
+ cli_rndnum@CLAMAV_PRIVATE 1.0.5
+ cli_sanitize_filepath@CLAMAV_PRIVATE 1.0.5
+ cli_scan_buff@CLAMAV_PRIVATE 1.0.5
+ cli_scan_fmap@CLAMAV_PRIVATE 1.0.5
+ cli_set_debug_flag@CLAMAV_PRIVATE 1.0.5
+ cli_sigopts_handler@CLAMAV_PRIVATE 1.0.5
+ cli_sigperf_events_destroy@CLAMAV_PRIVATE 1.0.5
+ cli_sigperf_print@CLAMAV_PRIVATE 1.0.5
+ cli_str2hex@CLAMAV_PRIVATE 1.0.5
+ cli_strbcasestr@CLAMAV_PRIVATE 1.0.5
+ cli_strdup@CLAMAV_PRIVATE 1.0.5
+ cli_strerror@CLAMAV_PRIVATE 1.0.5
+ cli_strlcat@CLAMAV_PRIVATE 1.0.5
+ cli_strlcpy@CLAMAV_PRIVATE 1.0.5
+ cli_strntoul@CLAMAV_PRIVATE 1.0.5
+ cli_strrcpy@CLAMAV_PRIVATE 1.0.5
+ cli_strtok@CLAMAV_PRIVATE 1.0.5
+ cli_strtokbuf@CLAMAV_PRIVATE 1.0.5
+ cli_strtokenize@CLAMAV_PRIVATE 1.0.5
+ cli_textbuffer_append_normalize@CLAMAV_PRIVATE 1.0.5
+ cli_unescape@CLAMAV_PRIVATE 1.0.5
+ cli_unlink@CLAMAV_PRIVATE 1.0.5
+ cli_url_canon@CLAMAV_PRIVATE 1.0.5
+ cli_utf16_to_utf8@CLAMAV_PRIVATE 1.0.5
+ cli_utf16toascii@CLAMAV_PRIVATE 1.0.5
+ cli_vba_inflate@CLAMAV_PRIVATE 1.0.5
+ cli_vba_readdir@CLAMAV_PRIVATE 1.0.5
+ cli_versig2@CLAMAV_PRIVATE 1.0.5
+ cli_versig@CLAMAV_PRIVATE 1.0.5
+ cli_warnmsg@CLAMAV_PRIVATE 1.0.5
+ cli_wm_decrypt_macro@CLAMAV_PRIVATE 1.0.5
+ cli_wm_readdir@CLAMAV_PRIVATE 1.0.5
+ cli_writen@CLAMAV_PRIVATE 1.0.5
+ decodeLine@CLAMAV_PRIVATE 1.0.5
+ disasmbuf@CLAMAV_PRIVATE 1.0.5
+ fmap@CLAMAV_PRIVATE 1.0.5
+ fmap_dump_to_file@CLAMAV_PRIVATE 1.0.5
+ fmap_duplicate@CLAMAV_PRIVATE 1.0.5
+ free_duplicate_fmap@CLAMAV_PRIVATE 1.0.5
+ get_fpu_endian@CLAMAV_PRIVATE 1.0.5
+ have_clamjit@CLAMAV_PRIVATE 1.0.5
+ have_rar@CLAMAV_PRIVATE 1.0.5
+ html_normalise_map@CLAMAV_PRIVATE 1.0.5
+ html_normalise_mem@CLAMAV_PRIVATE 1.0.5
+ html_screnc_decode@CLAMAV_PRIVATE 1.0.5
+ html_tag_arg_free@CLAMAV_PRIVATE 1.0.5
+ init_allow_list@CLAMAV_PRIVATE 1.0.5
+ init_domain_list@CLAMAV_PRIVATE 1.0.5
+ init_regex_list@CLAMAV_PRIVATE 1.0.5
+ is_regex_ok@CLAMAV_PRIVATE 1.0.5
+ load_regex_matcher@CLAMAV_PRIVATE 1.0.5
+ lsig_increment_subsig_match@CLAMAV_PRIVATE 1.0.5
lsig_sub_matched@CLAMAV_PUBLIC 1.0.0
- messageCreate@CLAMAV_PRIVATE 1.0.3
- messageDestroy@CLAMAV_PRIVATE 1.0.3
- mpool_calloc@CLAMAV_PRIVATE 1.0.3
- mpool_create@CLAMAV_PRIVATE 1.0.3
- mpool_destroy@CLAMAV_PRIVATE 1.0.3
- mpool_free@CLAMAV_PRIVATE 1.0.3
- mpool_getstats@CLAMAV_PRIVATE 1.0.3
- phishingScan@CLAMAV_PRIVATE 1.0.3
- phishing_done@CLAMAV_PRIVATE 1.0.3
- phishing_init@CLAMAV_PRIVATE 1.0.3
- readdb_parse_ldb_subsignature@CLAMAV_PRIVATE 1.0.3
- regex_list_add_pattern@CLAMAV_PRIVATE 1.0.3
- regex_list_done@CLAMAV_PRIVATE 1.0.3
- regex_list_match@CLAMAV_PRIVATE 1.0.3
- tableCreate@CLAMAV_PRIVATE 1.0.3
- tableDestroy@CLAMAV_PRIVATE 1.0.3
- tableFind@CLAMAV_PRIVATE 1.0.3
- tableInsert@CLAMAV_PRIVATE 1.0.3
- tableIterate@CLAMAV_PRIVATE 1.0.3
- tableRemove@CLAMAV_PRIVATE 1.0.3
- tableUpdate@CLAMAV_PRIVATE 1.0.3
- text_normalize_init@CLAMAV_PRIVATE 1.0.3
- text_normalize_map@CLAMAV_PRIVATE 1.0.3
- text_normalize_reset@CLAMAV_PRIVATE 1.0.3
- uniq_add@CLAMAV_PRIVATE 1.0.3
- uniq_free@CLAMAV_PRIVATE 1.0.3
- uniq_get@CLAMAV_PRIVATE 1.0.3
- uniq_init@CLAMAV_PRIVATE 1.0.3
+ messageCreate@CLAMAV_PRIVATE 1.0.5
+ messageDestroy@CLAMAV_PRIVATE 1.0.5
+ mpool_calloc@CLAMAV_PRIVATE 1.0.5
+ mpool_create@CLAMAV_PRIVATE 1.0.5
+ mpool_destroy@CLAMAV_PRIVATE 1.0.5
+ mpool_free@CLAMAV_PRIVATE 1.0.5
+ mpool_getstats@CLAMAV_PRIVATE 1.0.5
+ phishingScan@CLAMAV_PRIVATE 1.0.5
+ phishing_done@CLAMAV_PRIVATE 1.0.5
+ phishing_init@CLAMAV_PRIVATE 1.0.5
+ readdb_parse_ldb_subsignature@CLAMAV_PRIVATE 1.0.5
+ regex_list_add_pattern@CLAMAV_PRIVATE 1.0.5
+ regex_list_done@CLAMAV_PRIVATE 1.0.5
+ regex_list_match@CLAMAV_PRIVATE 1.0.5
+ tableCreate@CLAMAV_PRIVATE 1.0.5
+ tableDestroy@CLAMAV_PRIVATE 1.0.5
+ tableFind@CLAMAV_PRIVATE 1.0.5
+ tableInsert@CLAMAV_PRIVATE 1.0.5
+ tableIterate@CLAMAV_PRIVATE 1.0.5
+ tableRemove@CLAMAV_PRIVATE 1.0.5
+ tableUpdate@CLAMAV_PRIVATE 1.0.5
+ text_normalize_init@CLAMAV_PRIVATE 1.0.5
+ text_normalize_map@CLAMAV_PRIVATE 1.0.5
+ text_normalize_reset@CLAMAV_PRIVATE 1.0.5
+ uniq_add@CLAMAV_PRIVATE 1.0.5
+ uniq_free@CLAMAV_PRIVATE 1.0.5
+ uniq_get@CLAMAV_PRIVATE 1.0.5
+ uniq_init@CLAMAV_PRIVATE 1.0.5
libfreshclam.so.2 libclamav11 #MINVER#
FRESHCLAM_PRIVATE@FRESHCLAM_PRIVATE 1.0.1
FRESHCLAM_PUBLIC@FRESHCLAM_PUBLIC 1.0.0
diff --git a/debian/patches/Add-a-version-script-for-libclamav-and-libfreshclam.patch b/debian/patches/Add-a-version-script-for-libclamav-and-libfreshclam.patch
index 04b3b35..b8dc842 100644
--- a/debian/patches/Add-a-version-script-for-libclamav-and-libfreshclam.patch
+++ b/debian/patches/Add-a-version-script-for-libclamav-and-libfreshclam.patch
@@ -1,4 +1,4 @@
-From 02e81d7f161a4dce9f9bd20b0fb02b1bbe0ec232 Mon Sep 17 00:00:00 2001
+From 0c3d501051dd0ef760ea0aeb8598ce8872f24080 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
Date: Mon, 2 Jan 2023 15:51:42 +0100
Subject: Add a version script for libclamav and libfreshclam
diff --git a/debian/patches/Add-an-option-to-avoid-setting-RPATH-on-unix-systems.patch b/debian/patches/Add-an-option-to-avoid-setting-RPATH-on-unix-systems.patch
index 068ea04..a949023 100644
--- a/debian/patches/Add-an-option-to-avoid-setting-RPATH-on-unix-systems.patch
+++ b/debian/patches/Add-an-option-to-avoid-setting-RPATH-on-unix-systems.patch
@@ -1,4 +1,4 @@
-From 41cd9840d6d746fb3206daadda59e0030f5631a8 Mon Sep 17 00:00:00 2001
+From 75139abae87f22d070f53dc85d4803cb09309859 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
Date: Fri, 6 Jan 2023 23:11:00 +0100
Subject: Add an option to avoid setting RPATH on unix systems.
@@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a15ea12..cfeeb49 100644
+index e414ae6..b2c6533 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -174,13 +174,13 @@ endif()
diff --git a/debian/patches/Change-paths-in-sample-conf-file-to-match-Debian.patch b/debian/patches/Change-paths-in-sample-conf-file-to-match-Debian.patch
index da68c75..169bde6 100644
--- a/debian/patches/Change-paths-in-sample-conf-file-to-match-Debian.patch
+++ b/debian/patches/Change-paths-in-sample-conf-file-to-match-Debian.patch
@@ -1,4 +1,4 @@
-From 57f08c063a67798b1403e75fad6a629d2ee907db Mon Sep 17 00:00:00 2001
+From 1cc4c5c049acec79a134e35895ae0df6f2781d86 Mon Sep 17 00:00:00 2001
From: Scott Kitterman <sc...@kitterman.com>
Date: Mon, 10 Mar 2014 19:20:18 -0400
Subject: Change paths in sample conf file to match Debian
diff --git a/debian/patches/Freshclam-remove-curl-result-warning.patch b/debian/patches/Freshclam-remove-curl-result-warning.patch
deleted file mode 100644
index 7282f51..0000000
--- a/debian/patches/Freshclam-remove-curl-result-warning.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From b6798c1c1c1bd4e43f1ffbc36748adb5cf07787a Mon Sep 17 00:00:00 2001
-From: Micah Snyder <micas...@cisco.com>
-Date: Tue, 30 May 2023 16:07:45 -0700
-Subject: Freshclam: remove curl result warning
-
-A warning printing the HTTP code and file size was accidentally
-committed at the end of ClamAV 1.1.0 dev when fixing a bug.
-Remove this warning.
-
-Resolves: https://github.com/Cisco-Talos/clamav/issues/930
-Patch-Name: Freshclam-remove-curl-result-warning.patch
----
- libfreshclam/libfreshclam_internal.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/libfreshclam/libfreshclam_internal.c b/libfreshclam/libfreshclam_internal.c
-index e1ffeb1..c96b488 100644
---- a/libfreshclam/libfreshclam_internal.c
-+++ b/libfreshclam/libfreshclam_internal.c
-@@ -1300,7 +1300,6 @@ static fc_error_t downloadFile(
-
- /* Check HTTP code */
- curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_code);
-- logg(LOGG_WARNING, " ******* RESULT %ld, SIZE: %zu ******* \n", http_code, receivedFile.size);
- switch (http_code) {
- case 200:
- case 206: {
diff --git a/debian/patches/Remove-bundled-tomfastmath-library.patch b/debian/patches/Remove-bundled-tomfastmath-library.patch
index 579b20d..14af913 100644
--- a/debian/patches/Remove-bundled-tomfastmath-library.patch
+++ b/debian/patches/Remove-bundled-tomfastmath-library.patch
@@ -1,4 +1,4 @@
-From 7161ab29bd364366b61ee3b963c4cb2e8a8ffee9 Mon Sep 17 00:00:00 2001
+From 62cd02dc40f3fd1a26496091133787db33dd65e7 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
Date: Sat, 18 Feb 2023 10:45:50 +0100
Subject: Remove bundled tomfastmath library.
@@ -43,7 +43,7 @@ index 548d672..68dec8c 100644
- Yara has since switched to the BSD 3-Clause License;
Our source is out-of-date and needs to be updated.
diff --git a/clamav-config.h.cmake.in b/clamav-config.h.cmake.in
-index 5de4cbf..b21af87 100644
+index 8153ff5..4f3b837 100644
--- a/clamav-config.h.cmake.in
+++ b/clamav-config.h.cmake.in
@@ -401,9 +401,6 @@
diff --git a/debian/patches/cargo-Remove-windows-referenfes.patch b/debian/patches/cargo-Remove-windows-referenfes.patch
index 5e96642..8371e9f 100644
--- a/debian/patches/cargo-Remove-windows-referenfes.patch
+++ b/debian/patches/cargo-Remove-windows-referenfes.patch
@@ -1,4 +1,4 @@
-From 2082ccf539724ebe2552e816c27271aa37f51fd0 Mon Sep 17 00:00:00 2001
+From 596400ea97297ee38482a785bc631ceb74217986 Mon Sep 17 00:00:00 2001
From: Scott Kitterman <sc...@kitterman.com>
Date: Sat, 31 Dec 2022 12:12:58 +0100
Subject: cargo: Remove windows referenfes.
@@ -10,66 +10,14 @@ complain about it.
Patch-Name: cargo-Remove-windows-referenfes.patch
---
- .../.cargo/vendor/ansi_term/.cargo-checksum.json | 2 +-
- libclamav_rust/.cargo/vendor/ansi_term/Cargo.toml | 6 +++---
- .../.cargo/vendor/atty/.cargo-checksum.json | 2 +-
- libclamav_rust/.cargo/vendor/atty/Cargo.toml | 6 +++---
.../.cargo/vendor/libloading/.cargo-checksum.json | 2 +-
libclamav_rust/.cargo/vendor/libloading/Cargo.toml | 12 ++++++------
- .../vendor/remove_dir_all/.cargo-checksum.json | 2 +-
- .../.cargo/vendor/remove_dir_all/Cargo.toml | 4 ++--
.../.cargo/vendor/tempfile/.cargo-checksum.json | 2 +-
- libclamav_rust/.cargo/vendor/tempfile/Cargo.toml | 6 +++---
+ libclamav_rust/.cargo/vendor/tempfile/Cargo.toml | 12 ++++++------
.../.cargo/vendor/which/.cargo-checksum.json | 2 +-
libclamav_rust/.cargo/vendor/which/Cargo.toml | 4 ++--
- 12 files changed, 25 insertions(+), 25 deletions(-)
+ 6 files changed, 17 insertions(+), 17 deletions(-)
-diff --git a/libclamav_rust/.cargo/vendor/ansi_term/.cargo-checksum.json b/libclamav_rust/.cargo/vendor/ansi_term/.cargo-checksum.json
-index ee41459..2c87a6d 100644
---- a/libclamav_rust/.cargo/vendor/ansi_term/.cargo-checksum.json
-+++ b/libclamav_rust/.cargo/vendor/ansi_term/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"Cargo.lock":"31bb7b361278d99a00595cbd916c444e6fd193b5f0b1ea0cf2d9454440739501","Cargo.toml":"4ca681d6949661455ac88541ffa68ebc7db50cb2b6e9a2134e6d0687da4997c3","LICENCE":"2762990c7fbba9d550802a2593c1d857dcd52596bb0f9f192a97e9a7ac5f4f9e","README.md":"8d983e1bb3cc99724010d9073a5be6452cd49bd57a877525fd0a5dd41e6591d5","examples/256_colours.rs":"5f2845068bc2d93cff4a61f18ffa44fbbbc91be771dfd686d537d343f37041da","examples/basic_colours.rs":"d610795f3743d10d90ec4e5ab32cc09fb16640896cecd2f93fca434a0920397c","examples/rgb_colours.rs":"8399e5131e959a56c932036b790e601fb4ad658856112daf87f933889b443f2c","src/ansi.rs":"988fb87936064fa006fcc9474ac62099c8d6e98d38bb80cec2cd864066482a08","src/debug.rs":"61343f8bf13695020102c033aeaacd9ccd3ec830eacbf9011127e61829451d20","src/difference.rs":"9b4b8f91c72932bfda262abdceff0ec124a5a8dd27d07bd4d2e5e7889135c6c9","src/display.rs":"c04f2397d1d1d86a5e2188c2840c505cb0baeaf9706a88d4bbe56eadc67811b9","src/lib.rs":"b85df4b9b8832cda777db049efa2ec84b9847438fa3feaf8540e597ce2532a47","src/style.rs":"1042fc973f5ea8bbb2a2faec334aad530520b53edc9b3296174ae38c1060490b","src/util.rs":"07c127f732887573a1c9126fc0288e13e7a8f1f803513b95e50aac2905171b0d","src/windows.rs":"7ce7dd6738b9728fcd3908c284b6f29a9bdfb34af761b4c7385cf7e3e1b20e64","src/write.rs":"c9ec03764ad1ecea8b680243c9cafc5e70919fcea7500cc18246ffd8f6bb4b33"},"package":"d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"}
-\ No newline at end of file
-+{"files":{"Cargo.lock":"31bb7b361278d99a00595cbd916c444e6fd193b5f0b1ea0cf2d9454440739501","LICENCE":"2762990c7fbba9d550802a2593c1d857dcd52596bb0f9f192a97e9a7ac5f4f9e","README.md":"8d983e1bb3cc99724010d9073a5be6452cd49bd57a877525fd0a5dd41e6591d5","examples/256_colours.rs":"5f2845068bc2d93cff4a61f18ffa44fbbbc91be771dfd686d537d343f37041da","examples/basic_colours.rs":"d610795f3743d10d90ec4e5ab32cc09fb16640896cecd2f93fca434a0920397c","examples/rgb_colours.rs":"8399e5131e959a56c932036b790e601fb4ad658856112daf87f933889b443f2c","src/ansi.rs":"988fb87936064fa006fcc9474ac62099c8d6e98d38bb80cec2cd864066482a08","src/debug.rs":"61343f8bf13695020102c033aeaacd9ccd3ec830eacbf9011127e61829451d20","src/difference.rs":"9b4b8f91c72932bfda262abdceff0ec124a5a8dd27d07bd4d2e5e7889135c6c9","src/display.rs":"c04f2397d1d1d86a5e2188c2840c505cb0baeaf9706a88d4bbe56eadc67811b9","src/lib.rs":"b85df4b9b8832cda777db049efa2ec84b9847438fa3feaf8540e597ce2532a47","src/style.rs":"1042fc973f5ea8bbb2a2faec334aad530520b53edc9b3296174ae38c1060490b","src/util.rs":"07c127f732887573a1c9126fc0288e13e7a8f1f803513b95e50aac2905171b0d","src/windows.rs":"7ce7dd6738b9728fcd3908c284b6f29a9bdfb34af761b4c7385cf7e3e1b20e64","src/write.rs":"c9ec03764ad1ecea8b680243c9cafc5e70919fcea7500cc18246ffd8f6bb4b33"},"package":"d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"}
-diff --git a/libclamav_rust/.cargo/vendor/ansi_term/Cargo.toml b/libclamav_rust/.cargo/vendor/ansi_term/Cargo.toml
-index 0e5feba..3314b47 100644
---- a/libclamav_rust/.cargo/vendor/ansi_term/Cargo.toml
-+++ b/libclamav_rust/.cargo/vendor/ansi_term/Cargo.toml
-@@ -38,6 +38,6 @@ version = "1.0.39"
-
- [features]
- derive_serde_style = ["serde"]
--[target."cfg(target_os=\"windows\")".dependencies.winapi]
--version = "0.3.4"
--features = ["consoleapi", "errhandlingapi", "fileapi", "handleapi", "processenv"]
-+#[target."cfg(target_os=\"windows\")".dependencies.winapi]
-+#version = "0.3.4"
-+#features = ["consoleapi", "errhandlingapi", "fileapi", "handleapi", "processenv"]
-diff --git a/libclamav_rust/.cargo/vendor/atty/.cargo-checksum.json b/libclamav_rust/.cargo/vendor/atty/.cargo-checksum.json
-index a68b85b..8a392c5 100644
---- a/libclamav_rust/.cargo/vendor/atty/.cargo-checksum.json
-+++ b/libclamav_rust/.cargo/vendor/atty/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"CHANGELOG.md":"70db121262d72acc472ad1a90b78c42de570820e65b566c6b9339b62e636d572","Cargo.lock":"6868f02a96413bcba37a06f01c6bf87e6331dea9461681a47a561cec6acd2546","Cargo.toml":"3af88a07af6a4adb84373fc3cd4920884b0b12b338cdb55ef598fd512ee1a790","LICENSE":"99fa95ba4e4cdaf71c27d73260ea069fc4515b3d02fde3020c5b562280006cbc","README.md":"e559a69c0b2bd20bffcede64fd548df6c671b0d1504613c5e3e5d884d759caea","examples/atty.rs":"1551387a71474d9ac1b5153231f884e9e05213badcfaa3494ad2cb7ea958374a","rustfmt.toml":"8e6ea1bcb79c505490034020c98e9b472f4ac4113f245bae90f5e1217b1ec65a","src/lib.rs":"d5abf6a54e8c496c486572bdc91eef10480f6ad126c4287f039df5feff7a9bbb"},"package":"d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"}
-\ No newline at end of file
-+{"files":{"CHANGELOG.md":"70db121262d72acc472ad1a90b78c42de570820e65b566c6b9339b62e636d572","Cargo.lock":"6868f02a96413bcba37a06f01c6bf87e6331dea9461681a47a561cec6acd2546","LICENSE":"99fa95ba4e4cdaf71c27d73260ea069fc4515b3d02fde3020c5b562280006cbc","README.md":"e559a69c0b2bd20bffcede64fd548df6c671b0d1504613c5e3e5d884d759caea","examples/atty.rs":"1551387a71474d9ac1b5153231f884e9e05213badcfaa3494ad2cb7ea958374a","rustfmt.toml":"8e6ea1bcb79c505490034020c98e9b472f4ac4113f245bae90f5e1217b1ec65a","src/lib.rs":"d5abf6a54e8c496c486572bdc91eef10480f6ad126c4287f039df5feff7a9bbb"},"package":"d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"}
-diff --git a/libclamav_rust/.cargo/vendor/atty/Cargo.toml b/libclamav_rust/.cargo/vendor/atty/Cargo.toml
-index d6bf2d0..f846a68 100644
---- a/libclamav_rust/.cargo/vendor/atty/Cargo.toml
-+++ b/libclamav_rust/.cargo/vendor/atty/Cargo.toml
-@@ -27,8 +27,8 @@ version = "0.1.6"
- [target."cfg(unix)".dependencies.libc]
- version = "0.2"
- default-features = false
--[target."cfg(windows)".dependencies.winapi]
--version = "0.3"
--features = ["consoleapi", "processenv", "minwinbase", "minwindef", "winbase"]
-+#[target."cfg(windows)".dependencies.winapi]
-+#version = "0.3"
-+#features = ["consoleapi", "processenv", "minwinbase", "minwindef", "winbase"]
- [badges.travis-ci]
- repository = "softprops/atty"
diff --git a/libclamav_rust/.cargo/vendor/libloading/.cargo-checksum.json b/libclamav_rust/.cargo/vendor/libloading/.cargo-checksum.json
index 0416401..884f3c8 100644
--- a/libclamav_rust/.cargo/vendor/libloading/.cargo-checksum.json
@@ -98,49 +46,34 @@ index 65168d5..a43837f 100644
+# "errhandlingapi",
+# "libloaderapi",
+#]
-diff --git a/libclamav_rust/.cargo/vendor/remove_dir_all/.cargo-checksum.json b/libclamav_rust/.cargo/vendor/remove_dir_all/.cargo-checksum.json
-index bc449a2..b5d9233 100644
---- a/libclamav_rust/.cargo/vendor/remove_dir_all/.cargo-checksum.json
-+++ b/libclamav_rust/.cargo/vendor/remove_dir_all/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"Cargo.toml":"1e90fb0b342a93a8bd2d593c71bef703e69b760801099d31202556d3a4db0007","LICENCE-APACHE":"c6c8c9dbe29fb4d68d829c7a402f9f6baae3472ecf107cc2a57c75a9a8d1b85c","LICENCE-MIT":"db264505cb1856383e255c8373da9e5aeadc1cd92b570fcc94fd1fb7d892db78","README.md":"167f3796d716e1bb4a6b98d706fd3c02012dff55d488a24e7de822d896d3cc5a","src/fs.rs":"a7137d7f3a5769cd547daf2be2096a7a664d6114107a3f143c921c4aaab97719","src/lib.rs":"8155ac516b4d054de00d78ce70501175bea7248c0436e4a7f0d35823299f7dc2"},"package":"3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"}
-\ No newline at end of file
-+{"files":{"LICENCE-APACHE":"c6c8c9dbe29fb4d68d829c7a402f9f6baae3472ecf107cc2a57c75a9a8d1b85c","LICENCE-MIT":"db264505cb1856383e255c8373da9e5aeadc1cd92b570fcc94fd1fb7d892db78","README.md":"167f3796d716e1bb4a6b98d706fd3c02012dff55d488a24e7de822d896d3cc5a","src/fs.rs":"a7137d7f3a5769cd547daf2be2096a7a664d6114107a3f143c921c4aaab97719","src/lib.rs":"8155ac516b4d054de00d78ce70501175bea7248c0436e4a7f0d35823299f7dc2"},"package":"3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"}
-diff --git a/libclamav_rust/.cargo/vendor/remove_dir_all/Cargo.toml b/libclamav_rust/.cargo/vendor/remove_dir_all/Cargo.toml
-index a847288..f9cdf30 100644
---- a/libclamav_rust/.cargo/vendor/remove_dir_all/Cargo.toml
-+++ b/libclamav_rust/.cargo/vendor/remove_dir_all/Cargo.toml
-@@ -23,6 +23,6 @@ license = "MIT/Apache-2.0"
- repository = "https://github.com/XAMPPRocky/remove_dir_all.git"
- [dev-dependencies.doc-comment]
- version = "0.3"
--[target."cfg(windows)".dependencies.winapi]
--version = "0.3"
-+#[target."cfg(windows)".dependencies.winapi]
-+#version = "0.3"
- features = ["std", "errhandlingapi", "winerror", "fileapi", "winbase"]
diff --git a/libclamav_rust/.cargo/vendor/tempfile/.cargo-checksum.json b/libclamav_rust/.cargo/vendor/tempfile/.cargo-checksum.json
-index 26f8560..9102e3d 100644
+index 472e033..5274ccf 100644
--- a/libclamav_rust/.cargo/vendor/tempfile/.cargo-checksum.json
+++ b/libclamav_rust/.cargo/vendor/tempfile/.cargo-checksum.json
@@ -1 +1 @@
--{"files":{"Cargo.toml":"685243e302f6e014de9c8e9b95596e5f63c7bf7fde42e8e66a41a6bc7fd5e803","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36","NEWS":"4255c86ac140a4d08423cd05cbd0aa42ff796bb4b38579dd19cde289ee3baecd","README.md":"db6717cbd0b3cbbce5f3cdb8a80d8f2d90b1be251b4c1c647557ae0f78ec9748","src/dir.rs":"4499ff439b740f8d2f01458664e2bf72bbfdd1206226780c6a91fb309ef15707","src/error.rs":"cc7d8eace0fff11cb342158d2885d5637bfb14b24ef30755e808554772039c5f","src/file/imp/mod.rs":"f6da9fcd93f11889670a251fdd8231b5f4614e5a971b7b183f52b44af68568d5","src/file/imp/other.rs":"99c8f9f3251199fc31e7b88810134712e5725fb6fa14648696ed5cbea980fc5b","src/file/imp/unix.rs":"cf8eeceecfddc37c9eaf95a1ebe088314dc468f07fe357961d80817eef619ca4","src/file/imp/windows.rs":"03d81d71c404f0d448e1162825d6fbd57a78b4af8d4dc5287ec2e7c5a873d7cc","src/file/mod.rs":"bda4ee3998106089a4c0ccbc8e46dc22b7d3aec427487fd4e414fb132b378736","src/lib.rs":"e2b0df7e17cc6680a5bb0829d0433f069c6bf9eede2007d21e3b01a595df41a8","src/spooled.rs":"51fa1d7639027234e257d343a5d3c95f2e47899ba6a24f0abec8d4d729eba6d6","src/util.rs":"2bd80ee69009e7e36b596d0105bb00184cff04e899e9fcce2e4cc21f23dda073","tests/namedtempfile.rs":"0031cb33ae6faf45be103869b4d98af63bef4040dc489b323212eb7a7ef72a9a","tests/spooled.rs":"29e797d486d867cb6ac46d4cf126eb5868a069a4070c3f50ffa02fbb0b887934","tests/tempdir.rs":"771d555d4eaa410207d212eb3744e016e0b5a22f1f1b7199636a4fac5daaf952","tests/tempfile.rs":"92078a1e20a39af77c1daa9a422345d20c41584dd2010b4829911c8741d1c628"},"package":"5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"}
+-{"files":{"Cargo.toml":"77fb468567c7fcf9a59e458288686210470400d0c3b6e34b3d0321f1f3899354","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36","NEWS":"96e2737f84c972d967d5bb7b3b7cae77aa014f3d322d58fc53a1feabbdd86bdc","README.md":"5fb03bad7838354c686bab80e30323385f07efeb2aa1c5c35bdff7ec203dc5fa","src/dir.rs":"7efb94008d9d14dd3c19c105f2a0dd0695e102a1057ad91d80eed2bcb97e5bd0","src/error.rs":"cc7d8eace0fff11cb342158d2885d5637bfb14b24ef30755e808554772039c5f","src/file/imp/mod.rs":"f6da9fcd93f11889670a251fdd8231b5f4614e5a971b7b183f52b44af68568d5","src/file/imp/other.rs":"99c8f9f3251199fc31e7b88810134712e5725fb6fa14648696ed5cbea980fc5b","src/file/imp/unix.rs":"fd0d514d61ed122f4d79c63c9f34809631ba78ffa41eea1632bf332137d22895","src/file/imp/windows.rs":"3c064beb4b70677929bfe6372dba113756fbd8ea27aa6a36e86090d7b860f566","src/file/mod.rs":"a469b69a2cfcf94804f26f18a77fd96777dfe3a3d3761872c507da913c666878","src/lib.rs":"6303e7470c680ad785f32eb717de2e512b88c2c5da0e1684e3704471fabd7398","src/spooled.rs":"05eef6a7aa9441ab834e602c0dd3df2222dcd4bcca91c5dfbc88591fb61a391f","src/util.rs":"6761c241cc6f4b99a85e45a827acd26b4d3bdf1d4efcb43a277f788b262ce0dc","tests/namedtempfile.rs":"93b8f2e609711047fe9649e4bce8e5bfaeeedd54f2ec871a994ea2b619283d7a","tests/spooled.rs":"29e797d486d867cb6ac46d4cf126eb5868a069a4070c3f50ffa02fbb0b887934","tests/tempdir.rs":"abf08594f9d9ddc6c417de413bf63f9026150378af319d857e5ac8578f3fb665","tests/tempfile.rs":"9a2f8142151a6aa2fd047aa3749f9982ece4b080a3ace0d3c58d6bdb3f883c81"},"package":"af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"}
\ No newline at end of file
-+{"files":{"LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36","NEWS":"4255c86ac140a4d08423cd05cbd0aa42ff796bb4b38579dd19cde289ee3baecd","README.md":"db6717cbd0b3cbbce5f3cdb8a80d8f2d90b1be251b4c1c647557ae0f78ec9748","src/dir.rs":"4499ff439b740f8d2f01458664e2bf72bbfdd1206226780c6a91fb309ef15707","src/error.rs":"cc7d8eace0fff11cb342158d2885d5637bfb14b24ef30755e808554772039c5f","src/file/imp/mod.rs":"f6da9fcd93f11889670a251fdd8231b5f4614e5a971b7b183f52b44af68568d5","src/file/imp/other.rs":"99c8f9f3251199fc31e7b88810134712e5725fb6fa14648696ed5cbea980fc5b","src/file/imp/unix.rs":"cf8eeceecfddc37c9eaf95a1ebe088314dc468f07fe357961d80817eef619ca4","src/file/imp/windows.rs":"03d81d71c404f0d448e1162825d6fbd57a78b4af8d4dc5287ec2e7c5a873d7cc","src/file/mod.rs":"bda4ee3998106089a4c0ccbc8e46dc22b7d3aec427487fd4e414fb132b378736","src/lib.rs":"e2b0df7e17cc6680a5bb0829d0433f069c6bf9eede2007d21e3b01a595df41a8","src/spooled.rs":"51fa1d7639027234e257d343a5d3c95f2e47899ba6a24f0abec8d4d729eba6d6","src/util.rs":"2bd80ee69009e7e36b596d0105bb00184cff04e899e9fcce2e4cc21f23dda073","tests/namedtempfile.rs":"0031cb33ae6faf45be103869b4d98af63bef4040dc489b323212eb7a7ef72a9a","tests/spooled.rs":"29e797d486d867cb6ac46d4cf126eb5868a069a4070c3f50ffa02fbb0b887934","tests/tempdir.rs":"771d555d4eaa410207d212eb3744e016e0b5a22f1f1b7199636a4fac5daaf952","tests/tempfile.rs":"92078a1e20a39af77c1daa9a422345d20c41584dd2010b4829911c8741d1c628"},"package":"5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"}
++{"files":{"LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36","NEWS":"96e2737f84c972d967d5bb7b3b7cae77aa014f3d322d58fc53a1feabbdd86bdc","README.md":"5fb03bad7838354c686bab80e30323385f07efeb2aa1c5c35bdff7ec203dc5fa","src/dir.rs":"7efb94008d9d14dd3c19c105f2a0dd0695e102a1057ad91d80eed2bcb97e5bd0","src/error.rs":"cc7d8eace0fff11cb342158d2885d5637bfb14b24ef30755e808554772039c5f","src/file/imp/mod.rs":"f6da9fcd93f11889670a251fdd8231b5f4614e5a971b7b183f52b44af68568d5","src/file/imp/other.rs":"99c8f9f3251199fc31e7b88810134712e5725fb6fa14648696ed5cbea980fc5b","src/file/imp/unix.rs":"fd0d514d61ed122f4d79c63c9f34809631ba78ffa41eea1632bf332137d22895","src/file/imp/windows.rs":"3c064beb4b70677929bfe6372dba113756fbd8ea27aa6a36e86090d7b860f566","src/file/mod.rs":"a469b69a2cfcf94804f26f18a77fd96777dfe3a3d3761872c507da913c666878","src/lib.rs":"6303e7470c680ad785f32eb717de2e512b88c2c5da0e1684e3704471fabd7398","src/spooled.rs":"05eef6a7aa9441ab834e602c0dd3df2222dcd4bcca91c5dfbc88591fb61a391f","src/util.rs":"6761c241cc6f4b99a85e45a827acd26b4d3bdf1d4efcb43a277f788b262ce0dc","tests/namedtempfile.rs":"93b8f2e609711047fe9649e4bce8e5bfaeeedd54f2ec871a994ea2b619283d7a","tests/spooled.rs":"29e797d486d867cb6ac46d4cf126eb5868a069a4070c3f50ffa02fbb0b887934","tests/tempdir.rs":"abf08594f9d9ddc6c417de413bf63f9026150378af319d857e5ac8578f3fb665","tests/tempfile.rs":"9a2f8142151a6aa2fd047aa3749f9982ece4b080a3ace0d3c58d6bdb3f883c81"},"package":"af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"}
diff --git a/libclamav_rust/.cargo/vendor/tempfile/Cargo.toml b/libclamav_rust/.cargo/vendor/tempfile/Cargo.toml
-index 253f866..51daf19 100644
+index 0e0722c..a925f08 100644
--- a/libclamav_rust/.cargo/vendor/tempfile/Cargo.toml
+++ b/libclamav_rust/.cargo/vendor/tempfile/Cargo.toml
-@@ -38,6 +38,6 @@ nightly = []
- version = "0.2.27"
+@@ -50,9 +50,9 @@ features = ["fs"]
[target."cfg(target_os = \"redox\")".dependencies.redox_syscall]
version = "0.2.9"
--[target."cfg(windows)".dependencies.winapi]
--version = "0.3"
--features = ["fileapi", "handleapi", "winbase"]
-+#[target."cfg(windows)".dependencies.winapi]
-+#version = "0.3"
-+#features = ["fileapi", "handleapi", "winbase"]
+
+-[target."cfg(windows)".dependencies.windows-sys]
+-version = "0.42"
+-features = [
+- "Win32_Storage_FileSystem",
+- "Win32_Foundation",
+-]
++# [target."cfg(windows)".dependencies.windows-sys]
++# version = "0.42"
++# features = [
++# "Win32_Storage_FileSystem",
++# "Win32_Foundation",
++# ]
diff --git a/libclamav_rust/.cargo/vendor/which/.cargo-checksum.json b/libclamav_rust/.cargo/vendor/which/.cargo-checksum.json
index 7b3c3ca..69fea07 100644
--- a/libclamav_rust/.cargo/vendor/which/.cargo-checksum.json
diff --git a/debian/patches/libclamav-Add-missing-symbols.patch b/debian/patches/libclamav-Add-missing-symbols.patch
index fe02243..a93250c 100644
--- a/debian/patches/libclamav-Add-missing-symbols.patch
+++ b/debian/patches/libclamav-Add-missing-symbols.patch
@@ -1,4 +1,4 @@
-From cde2569b3aae83e63013dc5f0c835cf8dc8e0333 Mon Sep 17 00:00:00 2001
+From a6aba92521bf5b8badb77f10777b9724895e7c6b Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
Date: Mon, 2 Jan 2023 16:20:39 +0100
Subject: libclamav: Add missing symbols.
@@ -13,92 +13,30 @@ Signed-off-by: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
1 file changed, 17 insertions(+)
diff --git a/libclamav/libclamav.map b/libclamav/libclamav.map
-index ae95c44..eecf2bb 100644
+index 7ef5864..0dd0f38 100644
--- a/libclamav/libclamav.map
+++ b/libclamav/libclamav.map
-@@ -75,6 +75,9 @@ CLAMAV_PRIVATE {
- cl_base64_decode;
- cl_base64_encode;
- cl_cleanup_crypto;
+@@ -267,6 +267,23 @@ CLAMAV_PRIVATE {
+ __cli_strndup;
+ __cli_strnlen;
+ __cli_strnstr;
++
+ cl_cvdunpack;
+ cl_engine_set_clcb_engine_compile_progress;
+ cl_engine_set_clcb_sigload_progress;
- cl_get_pkey_file;
- cl_get_x509_from_mem;
- cl_hash_data;
-@@ -108,6 +111,7 @@ CLAMAV_PRIVATE {
- cli_ac_init;
- cli_ac_initdata;
- cli_ac_scanbuff;
+ cli_add_content_match_pattern;
- cli_basename;
- cli_bm_free;
- cli_bm_init;
-@@ -142,7 +146,10 @@ CLAMAV_PRIVATE {
- cli_codepage_to_utf8;
- cli_ctime;
- cli_cvdunpack;
+ cli_dbgmsg;
-+ cli_dbgmsg;
- cli_dbgmsg_internal;
+ cli_dbgmsg_no_inline;
- cli_dconf_init;
- cli_debug_flag;
- cli_detect_environment;
-@@ -156,13 +163,17 @@ CLAMAV_PRIVATE {
- cli_gentemp_with_prefix;
- cli_gentempfd;
- cli_gentempfd_with_prefix;
+ cli_get_debug_flag;
- cli_get_filepath_from_filedesc;
+ cli_get_last_virus_str;
+ cli_getdsig;
- cli_gettmpdir;
- cli_hashfile;
- cli_hashset_destroy;
- cli_hashstream;
- cli_hex2str;
- cli_hex2ui;
+ cli_infomsg_simple;
- cli_initroots;
- cli_isnumber;
- cli_js_destroy;
-@@ -196,6 +207,7 @@ CLAMAV_PRIVATE {
- cli_sanitize_filepath;
- cli_scan_buff;
- cli_scan_fmap;
+ cli_set_debug_flag;
- cli_sigopts_handler;
- cli_sigperf_events_destroy;
- cli_sigperf_print;
-@@ -227,6 +239,7 @@ CLAMAV_PRIVATE {
- decodeLine;
- disasmbuf;
- fmap;
+ fmap_dump_to_file;
- fmap_duplicate;
- free_duplicate_fmap;
- get_fpu_endian;
-@@ -236,11 +249,14 @@ CLAMAV_PRIVATE {
- html_normalise_mem;
- html_screnc_decode;
- html_tag_arg_free;
+ init_allow_list;
+ init_domain_list;
- init_domainlist;
- init_regex_list;
- init_whitelist;
- is_regex_ok;
- load_regex_matcher;
+ lsig_increment_subsig_match;
- messageCreate;
- messageDestroy;
- mpool_calloc;
-@@ -251,6 +267,7 @@ CLAMAV_PRIVATE {
- phishingScan;
- phishing_done;
- phishing_init;
+ readdb_parse_ldb_subsignature;
- regex_list_add_pattern;
- regex_list_done;
- regex_list_match;
+ local:
+ *;
+ };
diff --git a/debian/patches/libclamav-Sort-libclamav.map-and-libfreshclam.map.patch b/debian/patches/libclamav-Sort-libclamav.map-and-libfreshclam.map.patch
deleted file mode 100644
index e072c79..0000000
--- a/debian/patches/libclamav-Sort-libclamav.map-and-libfreshclam.map.patch
+++ /dev/null
@@ -1,584 +0,0 @@
-From eaf028e244ac58bf130b2011dacd83ee5d6a90cc Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
-Date: Mon, 2 Jan 2023 16:13:35 +0100
-Subject: libclamav: Sort libclamav.map and libfreshclam.map
-
-Sort libclamav.map and libfreshclam.map so adding new symbols can be
-added in one place.
-
-Patch-Name: libclamav-Sort-libclamav.map-and-libfreshclam.map.patch
-Signed-off-by: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
----
- libclamav/libclamav.map | 444 +++++++++++++++++-----------------
- libfreshclam/libfreshclam.map | 40 +--
- 2 files changed, 240 insertions(+), 244 deletions(-)
-
-diff --git a/libclamav/libclamav.map b/libclamav/libclamav.map
-index 05519b2..ae95c44 100644
---- a/libclamav/libclamav.map
-+++ b/libclamav/libclamav.map
-@@ -1,32 +1,49 @@
- CLAMAV_PUBLIC {
- global:
-+ cl_always_gen_section_hash;
-+ cl_countsigs;
- cl_cvdfree;
- cl_cvdhead;
- cl_cvdparse;
- cl_cvdverify;
- cl_debug;
-- cl_init;
-- cl_engine_new;
-- cl_engine_set_num;
-+ cl_engine_addref;
-+ cl_engine_compile;
-+ cl_engine_free;
- cl_engine_get_num;
-- cl_engine_set_str;
- cl_engine_get_str;
-+ cl_engine_new;
-+ cl_engine_set_clcb_file_inspection;
-+ cl_engine_set_clcb_file_props;
- cl_engine_set_clcb_hash;
- cl_engine_set_clcb_meta;
-- cl_engine_set_clcb_file_props;
-- cl_set_clcb_msg;
-- cl_engine_set_clcb_file_inspection;
-- cl_engine_set_clcb_pre_scan;
- cl_engine_set_clcb_post_scan;
-- cl_engine_set_clcb_virus_found;
-- cl_engine_set_clcb_sigload;
- cl_engine_set_clcb_pre_cache;
-- cl_engine_settings_copy;
-+ cl_engine_set_clcb_pre_scan;
-+ cl_engine_set_clcb_sigload;
-+ cl_engine_set_clcb_stats_add_sample;
-+ cl_engine_set_clcb_stats_decrement_count;
-+ cl_engine_set_clcb_stats_flush;
-+ cl_engine_set_clcb_stats_get_hostid;
-+ cl_engine_set_clcb_stats_get_num;
-+ cl_engine_set_clcb_stats_get_size;
-+ cl_engine_set_clcb_stats_remove_sample;
-+ cl_engine_set_clcb_stats_submit;
-+ cl_engine_set_clcb_virus_found;
-+ cl_engine_set_num;
-+ cl_engine_set_stats_set_cbdata;
-+ cl_engine_set_str;
- cl_engine_settings_apply;
-+ cl_engine_settings_copy;
- cl_engine_settings_free;
-- cl_engine_compile;
-- cl_engine_addref;
-- cl_engine_free;
-+ cl_engine_stats_enable;
-+ cl_finish_hash;
-+ cl_fmap_close;
-+ cl_fmap_open_handle;
-+ cl_fmap_open_memory;
-+ cl_hash_destroy;
-+ cl_hash_init;
-+ cl_init;
- cl_load;
- cl_retdbdir;
- cl_retflevel;
-@@ -35,243 +52,222 @@ CLAMAV_PUBLIC {
- cl_scandesc_callback;
- cl_scanfile;
- cl_scanfile_callback;
-+ cl_scanmap_callback;
-+ cl_set_clcb_msg;
- cl_statchkdir;
- cl_statfree;
- cl_statinidir;
-- cl_countsigs;
- cl_strerror;
-- cl_fmap_open_handle;
-- cl_fmap_open_memory;
-- cl_scanmap_callback;
-- cl_fmap_close;
-- cl_always_gen_section_hash;
-- cl_engine_set_stats_set_cbdata;
-- cl_engine_set_clcb_stats_add_sample;
-- cl_engine_set_clcb_stats_remove_sample;
-- cl_engine_set_clcb_stats_decrement_count;
-- cl_engine_set_clcb_stats_submit;
-- cl_engine_set_clcb_stats_flush;
-- cl_engine_set_clcb_stats_get_num;
-- cl_engine_set_clcb_stats_get_size;
-- cl_engine_set_clcb_stats_get_hostid;
-- cl_hash_init;
- cl_update_hash;
-- cl_finish_hash;
-- cl_hash_destroy;
-- cl_engine_stats_enable;
- lsig_sub_matched;
- };
- CLAMAV_PRIVATE {
- global:
-- cli_sigperf_print;
-- cli_sigperf_events_destroy;
-- cli_pcre_perf_print;
-- cli_pcre_perf_events_destroy;
-- cli_pcre_init;
-- cli_pcre_build;
-- cli_pcre_scanbuf;
-- cli_pcre_recaloff;
-- cli_pcre_freeoff;
--
-- cli_gettmpdir;
-- cli_strtok;
-- cli_strtokenize;
-- cli_ldbtokenize;
-- cli_strlcat;
-- cli_strlcpy;
-- cli_strntoul;
-- cli_cvdunpack;
-- cli_regcomp;
-- cli_regexec;
-- cli_regfree;
-- cli_strrcpy;
-- cli_strbcasestr;
-- cli_isnumber;
-- cli_gentemp;
-- cli_gentempfd;
-- cli_rmdirs;
-- cli_chomp;
-- cli_rndnum;
--
-- cli_calloc;
-- cli_ole2_extract;
-- cli_errmsg;
-- cli_debug_flag;
-- cli_dbgmsg_internal;
-- cli_vba_readdir;
-- cli_vba_inflate;
-- cli_ppt_vba_read;
-- cli_wm_readdir;
-- cli_wm_decrypt_macro;
-- cli_free_vba_project;
-- cli_readn;
-- cli_str2hex;
-- cli_hashfile;
-- cli_hashstream;
-- text_normalize_init;
-- text_normalize_reset;
-- text_normalize_map;
-- html_normalise_map;
-- cli_utf16toascii;
--
-- cli_malloc;
-- cli_memstr;
-- cli_strdup;
-- cli_realloc;
-- cli_ctime;
-- tableCreate;
-- tableDestroy;
-- tableRemove;
-- tableFind;
-- tableIterate;
-- tableUpdate;
-- tableInsert;
-- cli_warnmsg;
-- cli_strtokbuf;
-- cli_js_init;
-- cli_js_process_buffer;
-- cli_js_parse_done;
-- cli_js_destroy;
-- cli_js_output;
-- cli_unescape;
-- cli_textbuffer_append_normalize;
-- cli_dconf_init;
-- cli_regex2suffix;
-- html_normalise_mem;
-- init_regex_list;
-- is_regex_ok;
-- regex_list_done;
-- regex_list_add_pattern;
-- cli_build_regex_list;
-- regex_list_match;
-- cli_hashset_destroy;
-- phishing_init;
-- init_domainlist;
-- init_whitelist;
-- phishing_done;
-- blobCreate;
-- blobAddData;
-- phishingScan;
-- blobDestroy;
-- load_regex_matcher;
-- html_tag_arg_free;
-- disasmbuf;
-- uniq_init;
-- uniq_free;
-- uniq_add;
-- uniq_get;
-- cli_hex2str;
-- cli_ac_init;
-- cli_ac_initdata;
-- cli_ac_buildtrie;
-- cli_ac_scanbuff;
-- cli_ac_freedata;
-- cli_ac_free;
-- cli_ac_chklsig;
-- cli_sigopts_handler;
-- cli_parse_add;
-- cli_bm_init;
-- cli_bm_scanbuff;
-- cli_bm_free;
-- cli_initroots;
-- cli_scan_buff;
-- cli_scan_fmap;
-- cli_check_auth_header;
-- cli_genhash_pe;
-- html_screnc_decode;
-- mpool_create;
-- mpool_calloc;
-- mpool_destroy;
-- mpool_free;
-- mpool_getstats;
-- cli_versig;
-- cli_versig2;
-- cli_filecopy;
-- cli_ftw;
-- cli_unlink;
-- cli_writen;
-- cli_url_canon;
-- cli_strerror;
-- decodeLine;
-- messageCreate;
-- messageDestroy;
-+ __cli_strcasestr;
-+ __cli_strndup;
-+ __cli_strnlen;
-+ __cli_strnstr;
- base64Flush;
-- have_rar;
-- have_clamjit;
-- cli_bytecode_load;
-- cli_bytecode_prepare2;
-- cli_bytecode_run;
-- cli_bytecode_destroy;
-- cli_bytecode_context_alloc;
-- cli_bytecode_context_destroy;
-- cli_bytecode_context_setfuncid;
-- cli_bytecode_context_setparam_int;
-- cli_bytecode_context_setparam_ptr;
-- cli_bytecode_context_setfile;
-- cli_bytecode_context_getresult_int;
-- cli_bytecode_context_clear;
-- cli_bytecode_init;
-- cli_bytecode_done;
-- cli_bytecode_debug;
-- cli_hex2ui;
-- fmap;
-- cli_bytecode_context_set_trace;
-- cli_bytecode_debug_printsrc;
-- cli_bytecode_printversion;
-- cli_bytecode_describe;
-- cli_bytetype_describe;
-- cli_bytevalue_describe;
-- cli_byteinst_describe;
-- cli_bytefunc_describe;
-- cli_printcxxver;
-- cli_detect_environment;
-- cli_disasm_one;
-- cli_utf16_to_utf8;
-- get_fpu_endian;
-- cl_initialize_crypto;
-+ blobAddData;
-+ blobCreate;
-+ blobDestroy;
-+ cl_ASN1_GetTimeT;
-+ cl_base64_decode;
-+ cl_base64_encode;
- cl_cleanup_crypto;
-+ cl_get_pkey_file;
-+ cl_get_x509_from_mem;
- cl_hash_data;
- cl_hash_file_fd;
-- cl_hash_file_fp;
- cl_hash_file_fd_ctx;
-- cl_sha256;
-+ cl_hash_file_fp;
-+ cl_initialize_crypto;
-+ cl_load_cert;
-+ cl_load_crl;
- cl_sha1;
-- cl_verify_signature;
-- cl_verify_signature_x509_keyfile;
-- cl_verify_signature_x509;
-- cl_get_x509_from_mem;
-- cl_validate_certificate_chain_ts_dir;
-+ cl_sha256;
-+ cl_sign_data;
-+ cl_sign_data_keyfile;
-+ cl_sign_file_fd;
-+ cl_sign_file_fp;
- cl_validate_certificate_chain;
-+ cl_validate_certificate_chain_ts_dir;
-+ cl_verify_signature;
- cl_verify_signature_fd;
- cl_verify_signature_fd_x509;
- cl_verify_signature_fd_x509_keyfile;
- cl_verify_signature_hash;
- cl_verify_signature_hash_x509;
- cl_verify_signature_hash_x509_keyfile;
-- cl_load_cert;
-- cl_ASN1_GetTimeT;
-- cl_load_crl;
-- cl_sign_data_keyfile;
-- cl_sign_data;
-- cl_sign_file_fd;
-- cl_sign_file_fp;
-- cl_get_pkey_file;
-- cl_base64_decode;
-- cl_base64_encode;
-- cli_sanitize_filepath;
-- cli_gentemp_with_prefix;
-- cli_gentempfd_with_prefix;
-+ cl_verify_signature_x509;
-+ cl_verify_signature_x509_keyfile;
-+ cli_ac_buildtrie;
-+ cli_ac_chklsig;
-+ cli_ac_free;
-+ cli_ac_freedata;
-+ cli_ac_init;
-+ cli_ac_initdata;
-+ cli_ac_scanbuff;
- cli_basename;
-- cli_realpath;
-+ cli_bm_free;
-+ cli_bm_init;
-+ cli_bm_scanbuff;
-+ cli_build_regex_list;
-+ cli_bytecode_context_alloc;
-+ cli_bytecode_context_clear;
-+ cli_bytecode_context_destroy;
-+ cli_bytecode_context_getresult_int;
-+ cli_bytecode_context_set_trace;
-+ cli_bytecode_context_setfile;
-+ cli_bytecode_context_setfuncid;
-+ cli_bytecode_context_setparam_int;
-+ cli_bytecode_context_setparam_ptr;
-+ cli_bytecode_debug;
-+ cli_bytecode_debug_printsrc;
-+ cli_bytecode_describe;
-+ cli_bytecode_destroy;
-+ cli_bytecode_done;
-+ cli_bytecode_init;
-+ cli_bytecode_load;
-+ cli_bytecode_prepare2;
-+ cli_bytecode_printversion;
-+ cli_bytecode_run;
-+ cli_bytefunc_describe;
-+ cli_byteinst_describe;
-+ cli_bytetype_describe;
-+ cli_bytevalue_describe;
-+ cli_calloc;
-+ cli_check_auth_header;
-+ cli_chomp;
- cli_codepage_to_utf8;
-+ cli_ctime;
-+ cli_cvdunpack;
-+ cli_dbgmsg_internal;
-+ cli_dconf_init;
-+ cli_debug_flag;
-+ cli_detect_environment;
-+ cli_disasm_one;
-+ cli_errmsg;
-+ cli_filecopy;
-+ cli_free_vba_project;
-+ cli_ftw;
-+ cli_genhash_pe;
-+ cli_gentemp;
-+ cli_gentemp_with_prefix;
-+ cli_gentempfd;
-+ cli_gentempfd_with_prefix;
- cli_get_filepath_from_filedesc;
-+ cli_gettmpdir;
-+ cli_hashfile;
-+ cli_hashset_destroy;
-+ cli_hashstream;
-+ cli_hex2str;
-+ cli_hex2ui;
-+ cli_initroots;
-+ cli_isnumber;
-+ cli_js_destroy;
-+ cli_js_init;
-+ cli_js_output;
-+ cli_js_parse_done;
-+ cli_js_process_buffer;
-+ cli_ldbtokenize;
-+ cli_malloc;
-+ cli_memstr;
-+ cli_ole2_extract;
-+ cli_parse_add;
-+ cli_pcre_build;
-+ cli_pcre_freeoff;
-+ cli_pcre_init;
-+ cli_pcre_perf_events_destroy;
-+ cli_pcre_perf_print;
-+ cli_pcre_recaloff;
-+ cli_pcre_scanbuf;
-+ cli_ppt_vba_read;
-+ cli_printcxxver;
-+ cli_readn;
-+ cli_realloc;
-+ cli_realpath;
-+ cli_regcomp;
-+ cli_regex2suffix;
-+ cli_regexec;
-+ cli_regfree;
-+ cli_rmdirs;
-+ cli_rndnum;
-+ cli_sanitize_filepath;
-+ cli_scan_buff;
-+ cli_scan_fmap;
-+ cli_sigopts_handler;
-+ cli_sigperf_events_destroy;
-+ cli_sigperf_print;
-+ cli_str2hex;
-+ cli_strbcasestr;
-+ cli_strdup;
-+ cli_strerror;
-+ cli_strlcat;
-+ cli_strlcpy;
-+ cli_strntoul;
-+ cli_strrcpy;
-+ cli_strtok;
-+ cli_strtokbuf;
-+ cli_strtokenize;
-+ cli_textbuffer_append_normalize;
-+ cli_unescape;
-+ cli_unlink;
-+ cli_url_canon;
-+ cli_utf16_to_utf8;
-+ cli_utf16toascii;
-+ cli_vba_inflate;
-+ cli_vba_readdir;
-+ cli_versig2;
-+ cli_versig;
-+ cli_warnmsg;
-+ cli_wm_decrypt_macro;
-+ cli_wm_readdir;
-+ cli_writen;
-+ decodeLine;
-+ disasmbuf;
-+ fmap;
- fmap_duplicate;
- free_duplicate_fmap;
--
-- __cli_strcasestr;
-- __cli_strndup;
-- __cli_strnlen;
-- __cli_strnstr;
-+ get_fpu_endian;
-+ have_clamjit;
-+ have_rar;
-+ html_normalise_map;
-+ html_normalise_mem;
-+ html_screnc_decode;
-+ html_tag_arg_free;
-+ init_domainlist;
-+ init_regex_list;
-+ init_whitelist;
-+ is_regex_ok;
-+ load_regex_matcher;
-+ messageCreate;
-+ messageDestroy;
-+ mpool_calloc;
-+ mpool_create;
-+ mpool_destroy;
-+ mpool_free;
-+ mpool_getstats;
-+ phishingScan;
-+ phishing_done;
-+ phishing_init;
-+ regex_list_add_pattern;
-+ regex_list_done;
-+ regex_list_match;
-+ tableCreate;
-+ tableDestroy;
-+ tableFind;
-+ tableInsert;
-+ tableIterate;
-+ tableRemove;
-+ tableUpdate;
-+ text_normalize_init;
-+ text_normalize_map;
-+ text_normalize_reset;
-+ uniq_add;
-+ uniq_free;
-+ uniq_get;
-+ uniq_init;
- local:
- *;
- };
-diff --git a/libfreshclam/libfreshclam.map b/libfreshclam/libfreshclam.map
-index 51841b0..a0756fe 100644
---- a/libfreshclam/libfreshclam.map
-+++ b/libfreshclam/libfreshclam.map
-@@ -1,43 +1,43 @@
- FRESHCLAM_PUBLIC {
- global:
-- fc_strerror;
-- fc_initialize;
- fc_cleanup;
-- fc_prune_database_directory;
-- fc_test_database;
- fc_dns_query_update_info;
- fc_download_url_database;
- fc_download_url_databases;
-+ fc_initialize;
-+ fc_prune_database_directory;
-+ fc_set_fccb_download_complete;
-+ fc_strerror;
-+ fc_test_database;
- fc_update_database;
- fc_update_databases;
-- fc_set_fccb_download_complete;
- logg;
- logg_close;
-- mprintf;
-- logg_verbose;
-+ logg_file;
- logg_nowarn;
-- logg_time;
- logg_rotate;
- logg_size;
-- logg_file;
-- mprintf_verbose;
-- mprintf_quiet;
-- mprintf_nowarn;
-- mprintf_stdout;
-- mprintf_progress;
-+ logg_time;
-+ logg_verbose;
-+ mprintf;
- mprintf_disabled;
-+ mprintf_nowarn;
-+ mprintf_progress;
-+ mprintf_quiet;
-+ mprintf_stdout;
-+ mprintf_verbose;
- };
- FRESHCLAM_PRIVATE {
- global:
-- optparse;
-- optget;
-- optfree;
-- get_version;
-- print_version;
- check_flevel;
-- drop_privileges;
- daemonize_parent_wait;
- daemonize_signal_parent;
-+ drop_privileges;
-+ get_version;
-+ optfree;
-+ optget;
-+ optparse;
-+ print_version;
- sendln;
- local:
- *;
diff --git a/debian/patches/libclamav-Use-OpenSSL-BN-instead-tomfastmath.patch b/debian/patches/libclamav-Use-OpenSSL-BN-instead-tomfastmath.patch
index b898950..78a6f76 100644
--- a/debian/patches/libclamav-Use-OpenSSL-BN-instead-tomfastmath.patch
+++ b/debian/patches/libclamav-Use-OpenSSL-BN-instead-tomfastmath.patch
@@ -1,4 +1,4 @@
-From 4072cc5efe8e420a23e7a8c96fe4e9f413f05a2c Mon Sep 17 00:00:00 2001
+From c6760160548d8acfc67f4ef209d9e7f6b646e34c Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
Date: Sat, 18 Feb 2023 10:47:53 +0100
Subject: libclamav: Use OpenSSL' BN instead tomfastmath.
diff --git a/debian/patches/libclamav-pe-Use-endian-wrapper-in-more-places.patch b/debian/patches/libclamav-pe-Use-endian-wrapper-in-more-places.patch
index 95702fe..199d9c4 100644
--- a/debian/patches/libclamav-pe-Use-endian-wrapper-in-more-places.patch
+++ b/debian/patches/libclamav-pe-Use-endian-wrapper-in-more-places.patch
@@ -1,4 +1,4 @@
-From d383be28e1c8a71bb8de4bae70474f366990cc86 Mon Sep 17 00:00:00 2001
+From ae4ce83e43f5be9bd8b51d32eeac46f58519762c Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
Date: Fri, 6 Jan 2023 21:42:30 +0100
Subject: libclamav/pe: Use endian wrapper in more places.
diff --git a/debian/patches/series b/debian/patches/series
index 2e0da6e..959f698 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,10 +1,8 @@
Change-paths-in-sample-conf-file-to-match-Debian.patch
cargo-Remove-windows-referenfes.patch
-libclamav-Sort-libclamav.map-and-libfreshclam.map.patch
libclamav-Add-missing-symbols.patch
Add-a-version-script-for-libclamav-and-libfreshclam.patch
libclamav-pe-Use-endian-wrapper-in-more-places.patch
Add-an-option-to-avoid-setting-RPATH-on-unix-systems.patch
libclamav-Use-OpenSSL-BN-instead-tomfastmath.patch
Remove-bundled-tomfastmath-library.patch
-Freshclam-remove-curl-result-warning.patch
diff --git a/debian/rules b/debian/rules
index a34204c..86199b4 100755
--- a/debian/rules
+++ b/debian/rules
@@ -80,7 +80,7 @@ CONFIG := -DENABLE_EXTERNAL_MSPACK=ON -DENABLE_UNRAR=OFF -DENABLE_EXTERNAL_TOMFA
fi;\
done; \
# Check for library features which may have been upgraded.
- if ! grep -q "CL_FLEVEL 163" libclamav/others.h ; then \
+ if ! grep -q "CL_FLEVEL 165" libclamav/others.h ; then \
echo "cl_retflevel needs boosting in symbol file"; \
touch debian/exit; \
fi;
diff --git a/docs/man/clamd.conf.5.in b/docs/man/clamd.conf.5.in
index 2d9748a..a992653 100644
--- a/docs/man/clamd.conf.5.in
+++ b/docs/man/clamd.conf.5.in
@@ -240,10 +240,16 @@ Enable non-blocking (multi-threaded/concurrent) database reloads. This feature w
Default: yes
.TP
\fBVirusEvent COMMAND\fR
-Execute a command when a virus is found. In the command string %v will be
-replaced with the virus name and %f will be replaced with the file name.
-Additionally, two environment variables will be defined: $CLAM_VIRUSEVENT_FILENAME
-and $CLAM_VIRUSEVENT_VIRUSNAME.
+Execute a command when virus is found.
+Use the following environment variables to identify the file and virus names:
+- $CLAM_VIRUSEVENT_FILENAME
+- $CLAM_VIRUSEVENT_VIRUSNAME
+In the command string, '%v' will also be replaced with the virus name.
+Note: The '%f' filename format character has been disabled and will no longer
+be replaced with the file name, due to command injection security concerns.
+Use the 'CLAM_VIRUSEVENT_FILENAME' environment variable instead.
+For the same reason, you should NOT use the environment variables in the
+command directly, but should use it carefully from your executed script.
\fR
.br
Default: disabled
diff --git a/etc/clamd.conf.sample b/etc/clamd.conf.sample
index 37fb03b..5473812 100644
--- a/etc/clamd.conf.sample
+++ b/etc/clamd.conf.sample
@@ -209,12 +209,18 @@ Example
# Default: yes
#ConcurrentDatabaseReload no
-# Execute a command when virus is found. In the command string %v will
-# be replaced with the virus name and %f will be replaced with the file name.
-# Additionally, two environment variables will be defined: $CLAM_VIRUSEVENT_FILENAME
-# and $CLAM_VIRUSEVENT_VIRUSNAME.
+# Execute a command when virus is found.
+# Use the following environment variables to identify the file and virus names:
+# - $CLAM_VIRUSEVENT_FILENAME
+# - $CLAM_VIRUSEVENT_VIRUSNAME
+# In the command string, '%v' will also be replaced with the virus name.
+# Note: The '%f' filename format character has been disabled and will no longer
+# be replaced with the file name, due to command injection security concerns.
+# Use the 'CLAM_VIRUSEVENT_FILENAME' environment variable instead.
+# For the same reason, you should NOT use the environment variables in the
+# command directly, but should use it carefully from your executed script.
# Default: no
-#VirusEvent /usr/local/bin/send_sms 123456789 "VIRUS ALERT: %v in %f"
+#VirusEvent /opt/send_virus_alert_sms.sh
# Run as another user (clamd must be started by root for this option to work)
# Default: don't drop privileges
diff --git a/libclamav/bytecode_api.h b/libclamav/bytecode_api.h
index ebb58df..753a0bc 100644
--- a/libclamav/bytecode_api.h
+++ b/libclamav/bytecode_api.h
@@ -167,6 +167,8 @@ enum FunctionalityLevels {
FUNC_LEVEL_1_0_1 = 161, /**< LibClamAV release 1.0.1 */
FUNC_LEVEL_1_0_2 = 162, /**< LibClamAV release 1.0.2 */
FUNC_LEVEL_1_0_3 = 163, /**< LibClamAV release 1.0.3 */
+ FUNC_LEVEL_1_0_4 = 164, /**< LibClamAV release 1.0.4 */
+ FUNC_LEVEL_1_0_5 = 165, /**< LibClamAV release 1.0.5 */
};
/**
diff --git a/libclamav/libclamav.map b/libclamav/libclamav.map
index eecf2bb..0dd0f38 100644
--- a/libclamav/libclamav.map
+++ b/libclamav/libclamav.map
@@ -1,49 +1,32 @@
CLAMAV_PUBLIC {
global:
- cl_always_gen_section_hash;
- cl_countsigs;
cl_cvdfree;
cl_cvdhead;
cl_cvdparse;
cl_cvdverify;
cl_debug;
- cl_engine_addref;
- cl_engine_compile;
- cl_engine_free;
- cl_engine_get_num;
- cl_engine_get_str;
+ cl_init;
cl_engine_new;
- cl_engine_set_clcb_file_inspection;
- cl_engine_set_clcb_file_props;
+ cl_engine_set_num;
+ cl_engine_get_num;
+ cl_engine_set_str;
+ cl_engine_get_str;
cl_engine_set_clcb_hash;
cl_engine_set_clcb_meta;
- cl_engine_set_clcb_post_scan;
- cl_engine_set_clcb_pre_cache;
+ cl_engine_set_clcb_file_props;
+ cl_set_clcb_msg;
+ cl_engine_set_clcb_file_inspection;
cl_engine_set_clcb_pre_scan;
- cl_engine_set_clcb_sigload;
- cl_engine_set_clcb_stats_add_sample;
- cl_engine_set_clcb_stats_decrement_count;
- cl_engine_set_clcb_stats_flush;
- cl_engine_set_clcb_stats_get_hostid;
- cl_engine_set_clcb_stats_get_num;
- cl_engine_set_clcb_stats_get_size;
- cl_engine_set_clcb_stats_remove_sample;
- cl_engine_set_clcb_stats_submit;
+ cl_engine_set_clcb_post_scan;
cl_engine_set_clcb_virus_found;
- cl_engine_set_num;
- cl_engine_set_stats_set_cbdata;
- cl_engine_set_str;
- cl_engine_settings_apply;
+ cl_engine_set_clcb_sigload;
+ cl_engine_set_clcb_pre_cache;
cl_engine_settings_copy;
+ cl_engine_settings_apply;
cl_engine_settings_free;
- cl_engine_stats_enable;
- cl_finish_hash;
- cl_fmap_close;
- cl_fmap_open_handle;
- cl_fmap_open_memory;
- cl_hash_destroy;
- cl_hash_init;
- cl_init;
+ cl_engine_compile;
+ cl_engine_addref;
+ cl_engine_free;
cl_load;
cl_retdbdir;
cl_retflevel;
@@ -52,239 +35,255 @@ CLAMAV_PUBLIC {
cl_scandesc_callback;
cl_scanfile;
cl_scanfile_callback;
- cl_scanmap_callback;
- cl_set_clcb_msg;
cl_statchkdir;
cl_statfree;
cl_statinidir;
+ cl_countsigs;
cl_strerror;
+ cl_fmap_open_handle;
+ cl_fmap_open_memory;
+ cl_scanmap_callback;
+ cl_fmap_close;
+ cl_always_gen_section_hash;
+ cl_engine_set_stats_set_cbdata;
+ cl_engine_set_clcb_stats_add_sample;
+ cl_engine_set_clcb_stats_remove_sample;
+ cl_engine_set_clcb_stats_decrement_count;
+ cl_engine_set_clcb_stats_submit;
+ cl_engine_set_clcb_stats_flush;
+ cl_engine_set_clcb_stats_get_num;
+ cl_engine_set_clcb_stats_get_size;
+ cl_engine_set_clcb_stats_get_hostid;
+ cl_hash_init;
cl_update_hash;
+ cl_finish_hash;
+ cl_hash_destroy;
+ cl_engine_stats_enable;
lsig_sub_matched;
};
CLAMAV_PRIVATE {
global:
- __cli_strcasestr;
- __cli_strndup;
- __cli_strnlen;
- __cli_strnstr;
- base64Flush;
- blobAddData;
+ cli_sigperf_print;
+ cli_sigperf_events_destroy;
+ cli_pcre_perf_print;
+ cli_pcre_perf_events_destroy;
+ cli_pcre_init;
+ cli_pcre_build;
+ cli_pcre_scanbuf;
+ cli_pcre_recaloff;
+ cli_pcre_freeoff;
+
+ cli_gettmpdir;
+ cli_strtok;
+ cli_strtokenize;
+ cli_ldbtokenize;
+ cli_strlcat;
+ cli_strlcpy;
+ cli_strntoul;
+ cli_regcomp;
+ cli_regexec;
+ cli_regfree;
+ cli_strrcpy;
+ cli_strbcasestr;
+ cli_isnumber;
+ cli_gentemp;
+ cli_gentempfd;
+ cli_rmdirs;
+ cli_chomp;
+ cli_rndnum;
+
+ cli_calloc;
+ cli_ole2_extract;
+ cli_errmsg;
+ cli_debug_flag;
+ cli_vba_readdir;
+ cli_vba_inflate;
+ cli_ppt_vba_read;
+ cli_wm_readdir;
+ cli_wm_decrypt_macro;
+ cli_free_vba_project;
+ cli_readn;
+ cli_str2hex;
+ cli_hashfile;
+ cli_hashstream;
+ text_normalize_init;
+ text_normalize_reset;
+ text_normalize_map;
+ html_normalise_map;
+ cli_utf16toascii;
+
+ cli_malloc;
+ cli_memstr;
+ cli_strdup;
+ cli_realloc;
+ cli_ctime;
+ tableCreate;
+ tableDestroy;
+ tableRemove;
+ tableFind;
+ tableIterate;
+ tableUpdate;
+ tableInsert;
+ cli_warnmsg;
+ cli_strtokbuf;
+ cli_js_init;
+ cli_js_process_buffer;
+ cli_js_parse_done;
+ cli_js_destroy;
+ cli_js_output;
+ cli_unescape;
+ cli_textbuffer_append_normalize;
+ cli_dconf_init;
+ cli_regex2suffix;
+ html_normalise_mem;
+ init_regex_list;
+ is_regex_ok;
+ regex_list_done;
+ regex_list_add_pattern;
+ cli_build_regex_list;
+ regex_list_match;
+ cli_hashset_destroy;
+ phishing_init;
+ phishing_done;
blobCreate;
+ blobAddData;
+ phishingScan;
blobDestroy;
- cl_ASN1_GetTimeT;
- cl_base64_decode;
- cl_base64_encode;
+ load_regex_matcher;
+ html_tag_arg_free;
+ disasmbuf;
+ uniq_init;
+ uniq_free;
+ uniq_add;
+ uniq_get;
+ cli_hex2str;
+ cli_ac_init;
+ cli_ac_initdata;
+ cli_ac_buildtrie;
+ cli_ac_scanbuff;
+ cli_ac_freedata;
+ cli_ac_free;
+ cli_ac_chklsig;
+ cli_sigopts_handler;
+ cli_bm_init;
+ cli_bm_scanbuff;
+ cli_bm_free;
+ cli_initroots;
+ cli_scan_buff;
+ cli_scan_fmap;
+ cli_check_auth_header;
+ cli_genhash_pe;
+ html_screnc_decode;
+ mpool_create;
+ mpool_calloc;
+ mpool_destroy;
+ mpool_free;
+ mpool_getstats;
+ cli_versig;
+ cli_versig2;
+ cli_filecopy;
+ cli_ftw;
+ cli_unlink;
+ cli_writen;
+ cli_url_canon;
+ cli_strerror;
+ decodeLine;
+ messageCreate;
+ messageDestroy;
+ base64Flush;
+ have_rar;
+ have_clamjit;
+ cli_bytecode_load;
+ cli_bytecode_prepare2;
+ cli_bytecode_run;
+ cli_bytecode_destroy;
+ cli_bytecode_context_alloc;
+ cli_bytecode_context_destroy;
+ cli_bytecode_context_setfuncid;
+ cli_bytecode_context_setparam_int;
+ cli_bytecode_context_setparam_ptr;
+ cli_bytecode_context_setfile;
+ cli_bytecode_context_getresult_int;
+
+ cli_bytecode_init;
+ cli_bytecode_done;
+ cli_bytecode_debug;
+ cli_hex2ui;
+ fmap;
+ cli_bytecode_context_set_trace;
+ cli_bytecode_debug_printsrc;
+ cli_bytecode_printversion;
+ cli_bytecode_describe;
+ cli_bytetype_describe;
+ cli_bytevalue_describe;
+ cli_byteinst_describe;
+ cli_bytefunc_describe;
+ cli_printcxxver;
+ cli_detect_environment;
+ cli_disasm_one;
+ cli_utf16_to_utf8;
+ get_fpu_endian;
+ cl_initialize_crypto;
cl_cleanup_crypto;
- cl_cvdunpack;
- cl_engine_set_clcb_engine_compile_progress;
- cl_engine_set_clcb_sigload_progress;
- cl_get_pkey_file;
- cl_get_x509_from_mem;
cl_hash_data;
cl_hash_file_fd;
- cl_hash_file_fd_ctx;
cl_hash_file_fp;
- cl_initialize_crypto;
- cl_load_cert;
- cl_load_crl;
- cl_sha1;
+ cl_hash_file_fd_ctx;
cl_sha256;
- cl_sign_data;
- cl_sign_data_keyfile;
- cl_sign_file_fd;
- cl_sign_file_fp;
- cl_validate_certificate_chain;
- cl_validate_certificate_chain_ts_dir;
+ cl_sha1;
cl_verify_signature;
+ cl_verify_signature_x509_keyfile;
+ cl_verify_signature_x509;
+ cl_get_x509_from_mem;
+ cl_validate_certificate_chain_ts_dir;
+ cl_validate_certificate_chain;
cl_verify_signature_fd;
cl_verify_signature_fd_x509;
cl_verify_signature_fd_x509_keyfile;
cl_verify_signature_hash;
cl_verify_signature_hash_x509;
cl_verify_signature_hash_x509_keyfile;
- cl_verify_signature_x509;
- cl_verify_signature_x509_keyfile;
- cli_ac_buildtrie;
- cli_ac_chklsig;
- cli_ac_free;
- cli_ac_freedata;
- cli_ac_init;
- cli_ac_initdata;
- cli_ac_scanbuff;
- cli_add_content_match_pattern;
- cli_basename;
- cli_bm_free;
- cli_bm_init;
- cli_bm_scanbuff;
- cli_build_regex_list;
- cli_bytecode_context_alloc;
- cli_bytecode_context_clear;
- cli_bytecode_context_destroy;
- cli_bytecode_context_getresult_int;
- cli_bytecode_context_set_trace;
- cli_bytecode_context_setfile;
- cli_bytecode_context_setfuncid;
- cli_bytecode_context_setparam_int;
- cli_bytecode_context_setparam_ptr;
- cli_bytecode_debug;
- cli_bytecode_debug_printsrc;
- cli_bytecode_describe;
- cli_bytecode_destroy;
- cli_bytecode_done;
- cli_bytecode_init;
- cli_bytecode_load;
- cli_bytecode_prepare2;
- cli_bytecode_printversion;
- cli_bytecode_run;
- cli_bytefunc_describe;
- cli_byteinst_describe;
- cli_bytetype_describe;
- cli_bytevalue_describe;
- cli_calloc;
- cli_check_auth_header;
- cli_chomp;
- cli_codepage_to_utf8;
- cli_ctime;
- cli_cvdunpack;
- cli_dbgmsg;
- cli_dbgmsg;
- cli_dbgmsg_internal;
- cli_dbgmsg_no_inline;
- cli_dconf_init;
- cli_debug_flag;
- cli_detect_environment;
- cli_disasm_one;
- cli_errmsg;
- cli_filecopy;
- cli_free_vba_project;
- cli_ftw;
- cli_genhash_pe;
- cli_gentemp;
- cli_gentemp_with_prefix;
- cli_gentempfd;
- cli_gentempfd_with_prefix;
- cli_get_debug_flag;
- cli_get_filepath_from_filedesc;
- cli_get_last_virus_str;
- cli_getdsig;
- cli_gettmpdir;
- cli_hashfile;
- cli_hashset_destroy;
- cli_hashstream;
- cli_hex2str;
- cli_hex2ui;
- cli_infomsg_simple;
- cli_initroots;
- cli_isnumber;
- cli_js_destroy;
- cli_js_init;
- cli_js_output;
- cli_js_parse_done;
- cli_js_process_buffer;
- cli_ldbtokenize;
- cli_malloc;
- cli_memstr;
- cli_ole2_extract;
- cli_parse_add;
- cli_pcre_build;
- cli_pcre_freeoff;
- cli_pcre_init;
- cli_pcre_perf_events_destroy;
- cli_pcre_perf_print;
- cli_pcre_recaloff;
- cli_pcre_scanbuf;
- cli_ppt_vba_read;
- cli_printcxxver;
- cli_readn;
- cli_realloc;
- cli_realpath;
- cli_regcomp;
- cli_regex2suffix;
- cli_regexec;
- cli_regfree;
- cli_rmdirs;
- cli_rndnum;
+ cl_load_cert;
+ cl_ASN1_GetTimeT;
+ cl_load_crl;
+ cl_sign_data_keyfile;
+ cl_sign_data;
+ cl_sign_file_fd;
+ cl_sign_file_fp;
+ cl_get_pkey_file;
+ cl_base64_decode;
+ cl_base64_encode;
cli_sanitize_filepath;
- cli_scan_buff;
- cli_scan_fmap;
- cli_set_debug_flag;
- cli_sigopts_handler;
- cli_sigperf_events_destroy;
- cli_sigperf_print;
- cli_str2hex;
- cli_strbcasestr;
- cli_strdup;
- cli_strerror;
- cli_strlcat;
- cli_strlcpy;
- cli_strntoul;
- cli_strrcpy;
- cli_strtok;
- cli_strtokbuf;
- cli_strtokenize;
- cli_textbuffer_append_normalize;
- cli_unescape;
- cli_unlink;
- cli_url_canon;
- cli_utf16_to_utf8;
- cli_utf16toascii;
- cli_vba_inflate;
- cli_vba_readdir;
- cli_versig2;
- cli_versig;
- cli_warnmsg;
- cli_wm_decrypt_macro;
- cli_wm_readdir;
- cli_writen;
- decodeLine;
- disasmbuf;
- fmap;
- fmap_dump_to_file;
+ cli_gentemp_with_prefix;
+ cli_gentempfd_with_prefix;
+ cli_basename;
+ cli_realpath;
+ cli_codepage_to_utf8;
+ cli_get_filepath_from_filedesc;
fmap_duplicate;
free_duplicate_fmap;
- get_fpu_endian;
- have_clamjit;
- have_rar;
- html_normalise_map;
- html_normalise_mem;
- html_screnc_decode;
- html_tag_arg_free;
+
+ __cli_strcasestr;
+ __cli_strndup;
+ __cli_strnlen;
+ __cli_strnstr;
+
+ cl_cvdunpack;
+ cl_engine_set_clcb_engine_compile_progress;
+ cl_engine_set_clcb_sigload_progress;
+ cli_add_content_match_pattern;
+ cli_dbgmsg;
+ cli_dbgmsg_no_inline;
+ cli_get_debug_flag;
+ cli_get_last_virus_str;
+ cli_getdsig;
+ cli_infomsg_simple;
+ cli_set_debug_flag;
+ fmap_dump_to_file;
init_allow_list;
init_domain_list;
- init_domainlist;
- init_regex_list;
- init_whitelist;
- is_regex_ok;
- load_regex_matcher;
lsig_increment_subsig_match;
- messageCreate;
- messageDestroy;
- mpool_calloc;
- mpool_create;
- mpool_destroy;
- mpool_free;
- mpool_getstats;
- phishingScan;
- phishing_done;
- phishing_init;
readdb_parse_ldb_subsignature;
- regex_list_add_pattern;
- regex_list_done;
- regex_list_match;
- tableCreate;
- tableDestroy;
- tableFind;
- tableInsert;
- tableIterate;
- tableRemove;
- tableUpdate;
- text_normalize_init;
- text_normalize_map;
- text_normalize_reset;
- uniq_add;
- uniq_free;
- uniq_get;
- uniq_init;
local:
*;
};
diff --git a/libclamav/ole2_encryption.h b/libclamav/ole2_encryption.h
index ce8da9f..dc0b9b5 100644
--- a/libclamav/ole2_encryption.h
+++ b/libclamav/ole2_encryption.h
@@ -34,16 +34,16 @@ typedef struct __attribute__((packed)) {
uint32_t reserved1;
uint32_t reserved2; /* MUST be 0 */
- uint8_t cspName[1]; /* really the rest of the data in the block. Starts with a
- string of wide characters, followed by the encryption verifier.
- It is 44 instead of 32 because this structure is only used inside
- encryption_info_stream_standard_t (below). It is in two different
- structures because of the way the documentation is written.
- */
+ // uint8_t cspName[variable]; /* really the rest of the data in the block. Starts with a
+ // string of wide characters, followed by the encryption verifier.
+ // It is 44 instead of 32 because this structure is only used inside
+ // encryption_info_stream_standard_t (below). It is in two different
+ // structures because of the way the documentation is written.
+ // */
} encryption_info_t;
-/*
+/*
* https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/2895eba1-acb1-4624-9bde-2cdad3fea015
*/
typedef struct __attribute__((packed)) {
@@ -54,17 +54,10 @@ typedef struct __attribute__((packed)) {
uint32_t size;
- union {
- encryption_info_t encryptionInfo;
- uint8_t padding[512 - 12]; /* Subtract the size of version_major, version_minor, flags and size.
- This consumes a sector (512 bytes), so make sure enough space is always allocated.
- */
- };
+ encryption_info_t encryptionInfo;
} encryption_info_stream_standard_t;
-#define CSP_NAME_LENGTH(__ptr__) (sizeof(__ptr__->padding) - sizeof(__ptr__->encryptionInfo) + 1)
-
/* https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/e5ad39b8-9bc1-4a19-bad3-44e6246d21e6 */
typedef struct __attribute__((packed)) {
uint32_t salt_size;
diff --git a/libclamav/ole2_extract.c b/libclamav/ole2_extract.c
index 7a2ed9b..33563a1 100644
--- a/libclamav/ole2_extract.c
+++ b/libclamav/ole2_extract.c
@@ -2089,7 +2089,7 @@ static cl_error_t generate_key_aes(const char *const password, encryption_key_t
tmp = verifier->salt_size;
if (verifier->salt_size > sizeof(verifier->salt)) {
- cli_warnmsg("ole2: Invalid salt length '0x%x'\n", verifier->salt_size);
+ cli_dbgmsg("ole2: Invalid salt length '0x%x'\n", verifier->salt_size);
tmp = sizeof(verifier->salt);
}
memcpy(buffer, verifier->salt, tmp);
@@ -2193,7 +2193,7 @@ static bool verify_key_aes(const encryption_key_t *const key, encryption_verifie
// If it claims to be LARGER than 32 bytes, we have a problem - because the buffer isn't that big.
actual_hash_size = verifier->verifier_hash_size;
if (actual_hash_size > sizeof(verifier->encrypted_verifier_hash)) {
- cli_warnmsg("ole2: Invalid encrypted verifier hash length 0x%x\n", verifier->verifier_hash_size);
+ cli_dbgmsg("ole2: Invalid encrypted verifier hash length 0x%x\n", verifier->verifier_hash_size);
actual_hash_size = sizeof(verifier->encrypted_verifier_hash);
}
@@ -2250,7 +2250,7 @@ static bool verify_key_aes(const encryption_key_t *const key, encryption_verifie
/**
* @brief Initialize encryption key, if the encryption validation passes.
*
- * @param headerPtr Pointer to the encryption header.
+ * @param encryptionInfo Pointer to the encryption header.
* @param encryptionKey [out] Pointer to encryption_key_t structure to be initialized by this function.
* @return Success or failure depending on whether or not the
* encryption verifier was successful with the
@@ -2261,70 +2261,79 @@ static bool verify_key_aes(const encryption_key_t *const key, encryption_verifie
* https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/2895eba1-acb1-4624-9bde-2cdad3fea015
*
*/
-static bool initialize_encryption_key(const encryption_info_stream_standard_t *headerPtr,
- encryption_key_t *encryptionKey)
+static bool initialize_encryption_key(
+ const uint8_t *encryptionInfoStreamPtr,
+ size_t remainingBytes,
+ encryption_key_t *encryptionKey)
{
-
bool bRet = false;
size_t idx = 0;
encryption_key_t key;
- encryption_verifier_t ev;
bool bAES = false;
+ encryption_info_stream_standard_t encryptionInfo = {0};
+ uint16_t *encryptionInfo_CSPName = NULL;
+ size_t CSPName_length = 0;
+ const uint8_t *encryptionVerifierPtr = NULL;
+ encryption_verifier_t encryptionVerifier = {0};
+
+ // Populate the encryption_info_stream_standard_t structure
+ copy_encryption_info_stream_standard(&encryptionInfo, encryptionInfoStreamPtr);
+
memset(encryptionKey, 0, sizeof(encryption_key_t));
memset(&key, 0, sizeof(encryption_key_t));
- cli_dbgmsg("Major Version = 0x%x\n", headerPtr->version_major);
- cli_dbgmsg("Minor Version = 0x%x\n", headerPtr->version_minor);
- cli_dbgmsg("Flags = 0x%x\n", headerPtr->flags);
+ cli_dbgmsg("Major Version = 0x%x\n", encryptionInfo.version_major);
+ cli_dbgmsg("Minor Version = 0x%x\n", encryptionInfo.version_minor);
+ cli_dbgmsg("Flags = 0x%x\n", encryptionInfo.flags);
/*Bit 0 and 1 must be 0*/
- if (1 & headerPtr->flags) {
+ if (1 & encryptionInfo.flags) {
cli_dbgmsg("ole2: Invalid first bit, must be 0\n");
goto done;
}
- if ((1 << 1) & headerPtr->flags) {
+ if ((1 << 1) & encryptionInfo.flags) {
cli_dbgmsg("ole2: Invalid second bit, must be 0\n");
goto done;
}
// https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/200a3d61-1ab4-4402-ae11-0290b28ab9cb
- if ((SE_HEADER_FDOCPROPS & headerPtr->flags)) {
+ if ((SE_HEADER_FDOCPROPS & encryptionInfo.flags)) {
cli_dbgmsg("ole2: Unsupported document properties encrypted\n");
goto done;
}
- if ((SE_HEADER_FEXTERNAL & headerPtr->flags) &&
- (SE_HEADER_FEXTERNAL != headerPtr->flags)) {
+ if ((SE_HEADER_FEXTERNAL & encryptionInfo.flags) &&
+ (SE_HEADER_FEXTERNAL != encryptionInfo.flags)) {
cli_dbgmsg("ole2: Invalid fExternal flags. If fExternal bit is set, nothing else can be\n");
goto done;
}
- if (SE_HEADER_FAES & headerPtr->flags) {
- if (!(SE_HEADER_FCRYPTOAPI & headerPtr->flags)) {
+ if (SE_HEADER_FAES & encryptionInfo.flags) {
+ if (!(SE_HEADER_FCRYPTOAPI & encryptionInfo.flags)) {
cli_dbgmsg("ole2: Invalid combo of fAES and fCryptoApi flags\n");
goto done;
}
- cli_dbgmsg("Flags: AES\n");
+ cli_dbgmsg("Flags = AES\n");
}
- cli_dbgmsg("Size = 0x%x\n", headerPtr->size);
+ cli_dbgmsg("Size = 0x%x\n", encryptionInfo.size);
- if (headerPtr->flags != headerPtr->encryptionInfo.flags) {
+ if (encryptionInfo.flags != encryptionInfo.encryptionInfo.flags) {
cli_dbgmsg("ole2: Flags must match\n");
goto done;
}
- if (0 != headerPtr->encryptionInfo.sizeExtra) {
+ if (0 != encryptionInfo.encryptionInfo.sizeExtra) {
cli_dbgmsg("ole2: Size Extra must be 0\n");
goto done;
}
- switch (headerPtr->encryptionInfo.algorithmID) {
+ switch (encryptionInfo.encryptionInfo.algorithmID) {
case SE_HEADER_EI_AES128:
- if (SE_HEADER_EI_AES128_KEYSIZE != headerPtr->encryptionInfo.keySize) {
+ if (SE_HEADER_EI_AES128_KEYSIZE != encryptionInfo.encryptionInfo.keySize) {
cli_dbgmsg("ole2: Key length does not match algorithm id\n");
goto done;
}
@@ -2332,7 +2341,7 @@ static bool initialize_encryption_key(const encryption_info_stream_standard_t *h
break;
case SE_HEADER_EI_AES192:
// not implemented
- if (SE_HEADER_EI_AES192_KEYSIZE != headerPtr->encryptionInfo.keySize) {
+ if (SE_HEADER_EI_AES192_KEYSIZE != encryptionInfo.encryptionInfo.keySize) {
cli_dbgmsg("ole2: Key length does not match algorithm id\n");
goto done;
}
@@ -2340,7 +2349,7 @@ static bool initialize_encryption_key(const encryption_info_stream_standard_t *h
goto done;
case SE_HEADER_EI_AES256:
// not implemented
- if (SE_HEADER_EI_AES256_KEYSIZE != headerPtr->encryptionInfo.keySize) {
+ if (SE_HEADER_EI_AES256_KEYSIZE != encryptionInfo.encryptionInfo.keySize) {
cli_dbgmsg("ole2: Key length does not match algorithm id\n");
goto done;
}
@@ -2350,68 +2359,87 @@ static bool initialize_encryption_key(const encryption_info_stream_standard_t *h
// not implemented
goto done;
default:
- cli_dbgmsg("ole2: Invalid Algorithm ID: 0x%x\n", headerPtr->encryptionInfo.algorithmID);
+ cli_dbgmsg("ole2: Invalid Algorithm ID: 0x%x\n", encryptionInfo.encryptionInfo.algorithmID);
goto done;
}
- if (SE_HEADER_EI_SHA1 != headerPtr->encryptionInfo.algorithmIDHash) {
- cli_dbgmsg("ole2: Invalid Algorithm ID Hash: 0x%x\n", headerPtr->encryptionInfo.algorithmIDHash);
+ if (SE_HEADER_EI_SHA1 != encryptionInfo.encryptionInfo.algorithmIDHash) {
+ cli_dbgmsg("ole2: Invalid Algorithm ID Hash: 0x%x\n", encryptionInfo.encryptionInfo.algorithmIDHash);
goto done;
}
- if (!key_length_valid_aes_bits(headerPtr->encryptionInfo.keySize)) {
- cli_dbgmsg("ole2: Invalid key size: 0x%x\n", headerPtr->encryptionInfo.keySize);
+ if (!key_length_valid_aes_bits(encryptionInfo.encryptionInfo.keySize)) {
+ cli_dbgmsg("ole2: Invalid key size: 0x%x\n", encryptionInfo.encryptionInfo.keySize);
goto done;
}
- cli_dbgmsg("KeySize = 0x%x\n", headerPtr->encryptionInfo.keySize);
+ cli_dbgmsg("KeySize = 0x%x\n", encryptionInfo.encryptionInfo.keySize);
- if (SE_HEADER_EI_AES_PROVIDERTYPE != headerPtr->encryptionInfo.providerType) {
+ if (SE_HEADER_EI_AES_PROVIDERTYPE != encryptionInfo.encryptionInfo.providerType) {
cli_dbgmsg("ole2: WARNING: Provider Type should be '0x%x', is '0x%x'\n",
- SE_HEADER_EI_AES_PROVIDERTYPE, headerPtr->encryptionInfo.providerType);
+ SE_HEADER_EI_AES_PROVIDERTYPE, encryptionInfo.encryptionInfo.providerType);
goto done;
}
- cli_dbgmsg("Reserved1: 0x%x\n", headerPtr->encryptionInfo.reserved1);
+ cli_dbgmsg("Reserved1 = 0x%x\n", encryptionInfo.encryptionInfo.reserved1);
- if (0 != headerPtr->encryptionInfo.reserved2) {
- cli_dbgmsg("ole2: Reserved 2 must be zero, is 0x%x\n", headerPtr->encryptionInfo.reserved2);
+ if (0 != encryptionInfo.encryptionInfo.reserved2) {
+ cli_dbgmsg("ole2: Reserved 2 must be zero, is 0x%x\n", encryptionInfo.encryptionInfo.reserved2);
goto done;
}
- /*The encryption info is at the end of the CPSName string.
+ /* The encryption info is at the end of the CPSName string.
* Find the end, and we'll have the index of the EncryptionVerifier.
* The CPSName string *should* always be either
* 'Microsoft Enhanced RSA and AES Cryptographic Provider'
* or
* 'Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)'
- *
*/
- for (idx = 0; idx < CSP_NAME_LENGTH(headerPtr) - 1; idx += 2) {
- if (((uint16_t *)&(headerPtr->encryptionInfo.cspName[idx]))[0] == 0) {
- break;
- }
+ encryptionInfo_CSPName = (uint16_t *)(encryptionInfoStreamPtr + sizeof(encryption_info_stream_standard_t));
+ remainingBytes -= sizeof(encryption_info_stream_standard_t);
+
+ if (0 == remainingBytes) {
+ cli_dbgmsg("ole2: No CSPName or encryption_verifier_t\n");
+ goto done;
}
- idx += 2;
- if ((sizeof(headerPtr->encryptionInfo.cspName) - idx) <= sizeof(encryption_verifier_t)) {
+ while (true) {
+ // Check if we've gone past the end of the buffer without finding the end of the CSPName string.
+ if ((idx + 1) * sizeof(uint16_t) > remainingBytes) {
+ cli_dbgmsg("ole2: CSPName is missing null terminator before end of buffer.\n");
+ goto done;
+ }
+ // Check if we've found the end of the CSPName string.
+ if (encryptionInfo_CSPName[idx] == 0) {
+ break;
+ }
+ // Found another character in the CSPName string, keep going.
+ idx++;
+ }
+
+ CSPName_length = (idx + 1) * sizeof(uint16_t);
+
+ encryptionVerifierPtr = (uint8_t *)encryptionInfo_CSPName + CSPName_length;
+ remainingBytes -= CSPName_length;
+
+ if (remainingBytes < sizeof(encryption_verifier_t)) {
cli_dbgmsg("ole2: No encryption_verifier_t\n");
goto done;
}
- copy_encryption_verifier(&ev, &(headerPtr->encryptionInfo.cspName[idx]));
+ copy_encryption_verifier(&encryptionVerifier, encryptionVerifierPtr);
- key.key_length_bits = headerPtr->encryptionInfo.keySize;
+ key.key_length_bits = encryptionInfo.encryptionInfo.keySize;
if (!bAES) {
cli_dbgmsg("ole2: Unsupported encryption algorithm\n");
goto done;
}
- if (CL_SUCCESS != generate_key_aes("VelvetSweatshop", &key, &ev)) {
+ if (CL_SUCCESS != generate_key_aes("VelvetSweatshop", &key, &encryptionVerifier)) {
/*Error message printed by generate_key_aes*/
goto done;
}
- if (!verify_key_aes(&key, &ev)) {
+ if (!verify_key_aes(&key, &encryptionVerifier)) {
cli_dbgmsg("ole2: Key verification for '%s' failed, unable to decrypt.\n", "VelvetSweatshop");
goto done;
}
@@ -2542,11 +2570,14 @@ cl_error_t cli_ole2_extract(const char *dirname, cli_ctx *ctx, struct uniq **fil
/* determine if encrypted with VelvetSweatshop password */
encryption_offset = 4 * (1 << hdr.log2_big_block_size);
if ((encryption_offset + sizeof(encryption_info_stream_standard_t)) <= hdr.m_length) {
- encryption_info_stream_standard_t encryption_info_stream_standard;
- copy_encryption_info_stream_standard(&encryption_info_stream_standard, &(((const uint8_t *)phdr)[encryption_offset]));
- bEncrypted = initialize_encryption_key(&encryption_info_stream_standard, &key);
- cli_dbgmsg("Encrypted with VelvetSweatshop\n");
+ bEncrypted = initialize_encryption_key(
+ &(((const uint8_t *)phdr)[encryption_offset]),
+ hdr.m_length - encryption_offset,
+ &key);
+
+ cli_dbgmsg("Encrypted with VelvetSweatshop: %d\n", bEncrypted);
+
#if HAVE_JSON
if (ctx->wrkproperty == ctx->properties) {
cli_jsonint(ctx->wrkproperty, "EncryptedWithVelvetSweatshop", bEncrypted);
diff --git a/libclamav/others.c b/libclamav/others.c
index 6167bb3..447e58d 100644
--- a/libclamav/others.c
+++ b/libclamav/others.c
@@ -622,7 +622,20 @@ cl_error_t cl_engine_set_num(struct cl_engine *engine, enum cl_engine_field fiel
engine->maxscansize = num;
break;
case CL_ENGINE_MAX_FILESIZE:
- engine->maxfilesize = num;
+ /* We have a limit of around 2GB (INT_MAX - 2). Enforce it here.
+ *
+ * TODO: Large file support is large-ly untested. Remove this restriction and test with a large set of large files of various types.
+ * libclamav's integer type safety has come a long way since 2014, so it's possible we could lift this restriction, but at least one
+ * of the parsers is bound to behave badly with large files. */
+ if ((uint64_t)num > INT_MAX - 2) {
+ if ((uint64_t)num > (uint64_t)2 * 1024 * 1024 * 1024 && num != LLONG_MAX) {
+ // If greater than 2GB, warn. If exactly at 2GB, don't hassle the user.
+ cli_warnmsg("Max file-size was set to %lld bytes. Unfortunately, scanning files greater than 2147483647 bytes (2 GiB - 1) is not supported.\n", num);
+ }
+ engine->maxfilesize = INT_MAX - 2;
+ } else {
+ engine->maxfilesize = num;
+ }
break;
case CL_ENGINE_MAX_RECURSION:
if (!num) {
diff --git a/libclamav/others.h b/libclamav/others.h
index 3893a82..500e72e 100644
--- a/libclamav/others.h
+++ b/libclamav/others.h
@@ -73,7 +73,7 @@
* in re-enabling affected modules.
*/
-#define CL_FLEVEL 163
+#define CL_FLEVEL 165
#define CL_FLEVEL_DCONF CL_FLEVEL
#define CL_FLEVEL_SIGTOOL CL_FLEVEL
diff --git a/libclamav/scanners.c b/libclamav/scanners.c
index 65314e4..6444175 100644
--- a/libclamav/scanners.c
+++ b/libclamav/scanners.c
@@ -5471,21 +5471,6 @@ static cl_error_t scan_common(cl_fmap_t *map, const char *filepath, const char *
cli_logg_setup(&ctx);
logg_initalized = true;
- /* We have a limit of around 2GB (INT_MAX - 2). Enforce it here. */
- /* TODO: Large file support is large-ly untested. Remove this restriction
- * and test with a large set of large files of various types. libclamav's
- * integer type safety has come a long way since 2014, so it's possible
- * we could lift this restriction, but at least one of the parsers is
- * bound to behave badly with large files. */
- if (map->len > INT_MAX - 2) {
- if (scanoptions->heuristic & CL_SCAN_HEURISTIC_EXCEEDS_MAX) {
- status = cli_append_potentially_unwanted(&ctx, "Heuristics.Limits.Exceeded.MaxFileSize");
- } else {
- status = CL_CLEAN;
- }
- goto done;
- }
-
status = cli_magic_scan(&ctx, CL_TYPE_ANY);
#if HAVE_JSON
diff --git a/libclamav_rust/Cargo.toml b/libclamav_rust/Cargo.toml
index 3a3a4af..cd55ec3 100644
--- a/libclamav_rust/Cargo.toml
+++ b/libclamav_rust/Cargo.toml
@@ -22,5 +22,5 @@ crate-type = ["staticlib"]
name = "clamav_rust"
[build-dependencies]
-cbindgen = "0.20"
+cbindgen = { version ="0.20", default-features = false }
bindgen = "0.65"
diff --git a/libfreshclam/libfreshclam.map b/libfreshclam/libfreshclam.map
index a0756fe..51841b0 100644
--- a/libfreshclam/libfreshclam.map
+++ b/libfreshclam/libfreshclam.map
@@ -1,43 +1,43 @@
FRESHCLAM_PUBLIC {
global:
+ fc_strerror;
+ fc_initialize;
fc_cleanup;
+ fc_prune_database_directory;
+ fc_test_database;
fc_dns_query_update_info;
fc_download_url_database;
fc_download_url_databases;
- fc_initialize;
- fc_prune_database_directory;
- fc_set_fccb_download_complete;
- fc_strerror;
- fc_test_database;
fc_update_database;
fc_update_databases;
+ fc_set_fccb_download_complete;
logg;
logg_close;
- logg_file;
+ mprintf;
+ logg_verbose;
logg_nowarn;
+ logg_time;
logg_rotate;
logg_size;
- logg_time;
- logg_verbose;
- mprintf;
- mprintf_disabled;
- mprintf_nowarn;
- mprintf_progress;
- mprintf_quiet;
- mprintf_stdout;
+ logg_file;
mprintf_verbose;
+ mprintf_quiet;
+ mprintf_nowarn;
+ mprintf_stdout;
+ mprintf_progress;
+ mprintf_disabled;
};
FRESHCLAM_PRIVATE {
global:
+ optparse;
+ optget;
+ optfree;
+ get_version;
+ print_version;
check_flevel;
+ drop_privileges;
daemonize_parent_wait;
daemonize_signal_parent;
- drop_privileges;
- get_version;
- optfree;
- optget;
- optparse;
- print_version;
sendln;
local:
*;
--- End Message ---