app-antivirus/clamav: new revision with an upstream freshclam patch.

This -r2 adds a patch to ensure that freshclam does not validate
invalid databases and crash your clamd on the subsequent reload.

Upstream-bug: https://bugzilla.clamav.net/show_bug.cgi?id=12522
Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
This commit is contained in:
Michael Orlitzky
2020-12-17 19:52:39 -05:00
parent de07b9143d
commit 2de1bdef87
2 changed files with 28 additions and 0 deletions

View File

@@ -55,6 +55,7 @@ PATCHES=(
"${FILESDIR}/${PN}-0.102.2-fix-curl-detection.patch" #709616
"${FILESDIR}/${PN}-0.103.0-system-tomsfastmath.patch" # 649394
"${FILESDIR}/${PN}-0.103.0-upstream-openrc.patch"
"${FILESDIR}/${PN}-0.103.0-freshclam-db-test-fix.patch"
)
src_prepare() {

View File

@@ -0,0 +1,27 @@
diff --git a/freshclam/freshclam.c b/freshclam/freshclam.c
index 8db3b8001..8cde8c9a8 100644
--- a/freshclam/freshclam.c
+++ b/freshclam/freshclam.c
@@ -280,6 +280,14 @@ fc_error_t download_complete_callback(const char *dbFilename, void *context)
goto done;
}
} else {
+ /*
+ * Attempt to test database in a child process.
+ */
+
+ /* We need to be able to wait for the child process ourselves.
+ * We'll re-enable wait in the global handler when we're done. */
+ g_sigchildWait = 0;
+
switch (pid = fork()) {
case -1: {
/*
@@ -391,6 +399,7 @@ done:
logg("!Database test FAILED.\n");
}
+ /* Re-enable the global handler's child process wait */
g_sigchildWait = 1;
return status;