Package: havp
Version: 0.92a-2
Severity: grave
Tags: patch

Since the last clamav update (0.94.4) the ABI of the library changed and
all users are now required to invoke cl_initialize_crypto() otherwise
the signature database can't be loaded and thus libclamav library
remains useless.
I've set the severity to grave since havp can't be used without clamav.

Sebastian
>From 45b1edab07d76fc331c4dc0a47d8ecc3a5438a27 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
Date: Wed, 2 Jul 2014 21:12:37 +0200
Subject: [PATCH] update to current (0.94.4) clamav

As of 0.94.4 version of clamav it is required to invoke
cl_initialize_crypto() before doing any kind of clamav-related
operations _or_ the whole thing fails.
The required API should be exported as of the upcomming debian
clamav release.

Signed-off-by: Sebastian Andrzej Siewior <sebast...@breakpoint.cc>
---
 debian/control                   |    2 +-
 havp/scanners/clamlibscanner.cpp |    3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/debian/control b/debian/control
index 5bb21a5..826ad2f 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: havp
 Section: net
 Priority: optional
 Maintainer: Rene Mayrhofer <rene.mayrho...@gibraltar.at>
-Build-Depends: debhelper (>= 4.0.0), autotools-dev, libssl-dev, libclamav-dev, dpatch, docbook-to-man, po-debconf
+Build-Depends: debhelper (>= 4.0.0), autotools-dev, libssl-dev, libclamav-dev (>= 0.98.4+dfsg-2), dpatch, docbook-to-man, po-debconf
 Standards-Version: 3.8.1
 
 Package: havp
diff --git a/havp/scanners/clamlibscanner.cpp b/havp/scanners/clamlibscanner.cpp
index f851552..6d19bd9 100644
--- a/havp/scanners/clamlibscanner.cpp
+++ b/havp/scanners/clamlibscanner.cpp
@@ -27,6 +27,8 @@ bool ClamLibScanner::InitDatabase()
     if (LL>2) cl_debug();
 
 #ifdef CL_INIT_DEFAULT
+    cl_initialize_crypto();
+
     if ( (ret = cl_init(CL_INIT_DEFAULT)) != CL_SUCCESS )
     {
         printf("ClamAV: cl_init() error: %s\n", cl_strerror(ret));
@@ -246,6 +248,7 @@ void ClamLibScanner::FreeDatabase()
     {
         LogFile::ErrorMessage("ClamAV: cl_engine_free() failed: %s\n", cl_strerror(ret));
     }
+    cl_cleanup_crypto();
 #else
     cl_free(engine);
 #endif
-- 
1.7.10.4

Reply via email to