summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-antivirus')
-rw-r--r--app-antivirus/clamav/ChangeLog11
-rw-r--r--app-antivirus/clamav/clamav-0.91.2-r1.ebuild143
-rw-r--r--app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-5759.patch52
-rw-r--r--app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-6336.patch21
-rw-r--r--app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-6337.patch24
-rw-r--r--app-antivirus/clamav/files/digest-clamav-0.91.2-r13
6 files changed, 253 insertions, 1 deletions
diff --git a/app-antivirus/clamav/ChangeLog b/app-antivirus/clamav/ChangeLog
index 50f3089db2bf..962080090a9a 100644
--- a/app-antivirus/clamav/ChangeLog
+++ b/app-antivirus/clamav/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for app-antivirus/clamav
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-antivirus/clamav/ChangeLog,v 1.257 2007/12/17 18:38:43 ticho Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-antivirus/clamav/ChangeLog,v 1.258 2007/12/20 00:29:41 ticho Exp $
+
+*clamav-0.91.2-r1 (20 Dec 2007)
+
+ 20 Dec 2007; Andrej Kacian <ticho@gentoo.org>
+ +files/clamav-0.91.2-CVE-2007-5759.patch,
+ +files/clamav-0.91.2-CVE-2007-6336.patch,
+ +files/clamav-0.91.2-CVE-2007-6337.patch, +clamav-0.91.2-r1.ebuild:
+ Add patches collected by Robert Buchholz <rbu at gentoo.org> to backport
+ fixes for CVE-2007-5759, CVE-2007-6336 and CVE-2007-6337.
*clamav-0.92 (17 Dec 2007)
diff --git a/app-antivirus/clamav/clamav-0.91.2-r1.ebuild b/app-antivirus/clamav/clamav-0.91.2-r1.ebuild
new file mode 100644
index 000000000000..6a9a960b6570
--- /dev/null
+++ b/app-antivirus/clamav/clamav-0.91.2-r1.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-antivirus/clamav/clamav-0.91.2-r1.ebuild,v 1.1 2007/12/20 00:29:41 ticho Exp $
+
+inherit autotools eutils flag-o-matic fixheadtails
+
+DESCRIPTION="Clam Anti-Virus Scanner"
+HOMEPAGE="http://www.clamav.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="bzip2 crypt mailwrapper milter nls selinux"
+
+DEPEND="virtual/libc
+ bzip2? ( app-arch/bzip2 )
+ crypt? ( >=dev-libs/gmp-4.1.2 )
+ milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) )
+ nls? ( sys-devel/gettext )
+ dev-libs/gmp
+ >=sys-libs/zlib-1.2.1-r3
+ >=sys-apps/sed-4"
+RDEPEND="${DEPEND}
+ selinux? ( sec-policy/selinux-clamav )
+ sys-apps/grep"
+PROVIDE="virtual/antivirus"
+
+pkg_setup() {
+ if use milter; then
+ if [ ! -e /usr/lib/libmilter.a ] ; then
+ ewarn "In order to enable milter support, clamav needs sendmail with enabled milter"
+ ewarn "USE flag. Either recompile sendmail with milter USE flag enabled, or disable"
+ ewarn "this flag for clamav as well to disable milter support."
+ die "need milter-enabled sendmail"
+ fi
+ fi
+ enewgroup clamav
+ enewuser clamav -1 -1 /dev/null clamav
+}
+
+src_unpack() {
+ unpack "${A}"
+ cd "${S}"
+ epatch "${FILESDIR}"/${PN}-0.90-compat.patch
+ epatch "${FILESDIR}"/${PN}-0.90-nls.patch
+ epatch "${FILESDIR}"/${P}-CVE-2007-5759.patch
+ epatch "${FILESDIR}"/${P}-CVE-2007-6336.patch
+ epatch "${FILESDIR}"/${P}-CVE-2007-6337.patch
+ eautoreconf
+}
+
+src_compile() {
+ has_version =sys-libs/glibc-2.2* && filter-lfs-flags
+
+ local myconf
+
+ # we depend on fixed zlib, so we can disable this check to prevent redundant
+ # warning (bug #61749)
+ myconf="${myconf} --disable-zlib-vcheck"
+ # use id utility instead of /etc/passwd parsing (bug #72540)
+ myconf="${myconf} --enable-id-check"
+ use milter && {
+ myconf="${myconf} --enable-milter"
+ use mailwrapper && \
+ myconf="${myconf} --with-sendmail=/usr/sbin/sendmail.sendmail"
+ }
+
+ ht_fix_file configure
+ econf ${myconf} \
+ $(use_enable bzip2) \
+ $(use_enable nls) \
+ --disable-experimental \
+ --with-dbdir=/var/lib/clamav || die
+ emake || die
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die
+ dodoc AUTHORS BUGS NEWS README ChangeLog FAQ
+ newconfd "${FILESDIR}"/clamd.conf clamd
+ newinitd "${FILESDIR}"/clamd.rc clamd
+ dodoc "${FILESDIR}"/clamav-milter.README.gentoo
+
+ dodir /var/run/clamav
+ keepdir /var/run/clamav
+ fowners clamav:clamav /var/run/clamav
+ dodir /var/log/clamav
+ keepdir /var/log/clamav
+ fowners clamav:clamav /var/log/clamav
+
+ # Change /etc/clamd.conf to be usable out of the box
+ sed -i -e "s:^\(Example\):\# \1:" \
+ -e "s:.*\(PidFile\) .*:\1 /var/run/clamav/clamd.pid:" \
+ -e "s:.*\(LocalSocket\) .*:\1 /var/run/clamav/clamd.sock:" \
+ -e "s:.*\(User\) .*:\1 clamav:" \
+ -e "s:^\#\(LogFile\) .*:\1 /var/log/clamav/clamd.log:" \
+ -e "s:^\#\(LogTime\).*:\1 yes:" \
+ "${D}"/etc/clamd.conf
+
+ # Do the same for /etc/freshclam.conf
+ sed -i -e "s:^\(Example\):\# \1:" \
+ -e "s:.*\(PidFile\) .*:\1 /var/run/clamav/freshclam.pid:" \
+ -e "s:.*\(DatabaseOwner\) .*:\1 clamav:" \
+ -e "s:^\#\(UpdateLogFile\) .*:\1 /var/log/clamav/freshclam.log:" \
+ -e "s:^\#\(NotifyClamd\).*:\1 /etc/clamd.conf:" \
+ -e "s:^\#\(ScriptedUpdates\).*:\1 yes:" \
+ "${D}"/etc/freshclam.conf
+
+ if use milter ; then
+ echo "START_MILTER=no" \
+ >> "${D}"/etc/conf.d/clamd
+ echo "MILTER_SOCKET=\"/var/run/clamav/clmilter.sock\"" \
+ >>"${D}"/etc/conf.d/clamd
+ echo "MILTER_OPTS=\"-m 10 --timeout=0\"" \
+ >>"${D}"/etc/conf.d/clamd
+ fi
+
+ diropts ""
+ dodir /etc/logrotate.d
+ insopts -m0644
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/${PN}.logrotate ${PN}
+}
+
+pkg_postinst() {
+ echo
+ if use milter ; then
+ elog "For simple instructions how to setup the clamav-milter"
+ elog "read /usr/share/doc/${PF}/clamav-milter.README.gentoo.gz"
+ echo
+ fi
+ ewarn "Warning: clamd and/or freshclam have not been restarted."
+ ewarn "You should restart them to start using new version: /etc/init.d/clamd restart"
+ echo
+ ewarn "The soname for libclamav has changed after clamav-0.90."
+ ewarn "If you have upgraded from that or earlier version, it is recommended to run:"
+ ewarn
+ ewarn "revdep-rebuild --library libclamav.so.1"
+ ewarn
+ ewarn "This will fix linking errors caused by this change."
+ echo
+}
diff --git a/app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-5759.patch b/app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-5759.patch
new file mode 100644
index 000000000000..d879eb7f65be
--- /dev/null
+++ b/app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-5759.patch
@@ -0,0 +1,52 @@
+Thu Dec 6 15:22:27 CET 2007 (tk)
+---------------------------------
+ * libclamav/pe.c: fix possible integer overflow in MEW related code
+ Reported by iDefense [IDEF2842]
+
+ Backported by <sgran@debian.org>
+
+ SVN r3376
+
+Index: clamav-0.91.2/libclamav/pe.c
+===================================================================
+--- clamav-0.91.2.orig/libclamav/pe.c
++++ clamav-0.91.2/libclamav/pe.c
+@@ -80,6 +80,18 @@
+ #define PEALIGN(o,a) (((a))?(((o)/(a))*(a)):(o))
+ #define PESALIGN(o,a) (((a))?(((o)/(a)+((o)%(a)!=0))*(a)):(o))
+
++#define CLI_UNPSIZELIMITS(NAME,CHK) \
++if(ctx->limits && ctx->limits->maxfilesize && (CHK) > ctx->limits->maxfilesize) { \
++ cli_dbgmsg(NAME": Sizes exceeded (%lu > %lu)\n", (CHK), ctx->limits->maxfilesize); \
++ free(exe_sections); \
++ if(BLOCKMAX) { \
++ *ctx->virname = "PE."NAME".ExceededFileSize"; \
++ return CL_VIRUS; \
++ } else { \
++ return CL_CLEAN; \
++ } \
++}
++
+ extern short cli_leavetemps_flag;
+
+ struct offset_list {
+@@ -1153,16 +1165,9 @@ int cli_scanpe(int desc, cli_ctx *ctx)
+ dsize = exe_sections[i].vsz;
+
+ cli_dbgmsg("MEW: ssize %08x dsize %08x offdiff: %08x\n", ssize, dsize, offdiff);
+- if(ctx->limits && ctx->limits->maxfilesize && (ssize + dsize > ctx->limits->maxfilesize || exe_sections[i + 1].rsz > ctx->limits->maxfilesize)) {
+- cli_dbgmsg("MEW: Sizes exceeded (ssize: %u, dsize: %u, max: %lu)\n", ssize, dsize , ctx->limits->maxfilesize);
+- free(exe_sections);
+- if(BLOCKMAX) {
+- *ctx->virname = "PE.MEW.ExceededFileSize";
+- return CL_VIRUS;
+- } else {
+- return CL_CLEAN;
+- }
+- }
++
++ CLI_UNPSIZELIMITS("MEW", MAX(ssize, dsize));
++ CLI_UNPSIZELIMITS("MEW", MAX(ssize + dsize, exe_sections[i + 1].rsz));
+
+ /* allocate needed buffer */
+ if (!(src = cli_calloc (ssize + dsize, sizeof(char)))) {
diff --git a/app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-6336.patch b/app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-6336.patch
new file mode 100644
index 000000000000..41cc474888c2
--- /dev/null
+++ b/app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-6336.patch
@@ -0,0 +1,21 @@
+Thu Dec 6 15:15:45 CET 2007 (tk)
+---------------------------------
+ * libclamav/mspack.c: fix off-by-one error in LZX_READ_HUFFSYM() (bb#663)
+
+ https://wwws.clamav.net/bugzilla/show_bug.cgi?id=663
+
+ SVN r3374
+
+Index: clamav-0.91.2/libclamav/mspack.c
+===================================================================
+--- clamav-0.91.2.orig/libclamav/mspack.c
++++ clamav-0.91.2/libclamav/mspack.c
+@@ -734,7 +734,7 @@ void mszip_free(struct mszip_stream *zip
+
+ #define LZX_ENSURE_BITS(nbits) \
+ while (bits_left < (nbits)) { \
+- if (i_ptr >= i_end) { \
++ if (i_ptr + 1 >= i_end) { \
+ if (lzx_read_input(lzx)) return lzx->error; \
+ i_ptr = lzx->i_ptr; \
+ i_end = lzx->i_end; \
diff --git a/app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-6337.patch b/app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-6337.patch
new file mode 100644
index 000000000000..71edc47c61c3
--- /dev/null
+++ b/app-antivirus/clamav/files/clamav-0.91.2-CVE-2007-6337.patch
@@ -0,0 +1,24 @@
+Mon Dec 10 15:54:20 CET 2007 (tk)
+---------------------------------
+ * libclamav/nsis/bzlib_private.h: fix bzlib bug (aCaB)
+
+ SVN r3387
+
+Index: clamav-0.91.2/libclamav/nsis/bzlib_private.h
+===================================================================
+--- clamav-0.91.2.orig/libclamav/nsis/bzlib_private.h
++++ clamav-0.91.2/libclamav/nsis/bzlib_private.h
+@@ -422,11 +422,13 @@ typedef
+ /*-- Macros for decompression. --*/
+
+ #define BZ_GET_FAST(cccc) \
++ if (s->tPos >= s->blockSize100k * 100000) return True; \
+ s->tPos = s->tt[s->tPos]; \
+ cccc = (UChar)(s->tPos & 0xff); \
+ s->tPos >>= 8;
+
+ #define BZ_GET_FAST_C(cccc) \
++ if (c_tPos >= s->blockSize100k * 100000) return True; \
+ c_tPos = c_tt[c_tPos]; \
+ cccc = (UChar)(c_tPos & 0xff); \
+ c_tPos >>= 8;
diff --git a/app-antivirus/clamav/files/digest-clamav-0.91.2-r1 b/app-antivirus/clamav/files/digest-clamav-0.91.2-r1
new file mode 100644
index 000000000000..dff507b523df
--- /dev/null
+++ b/app-antivirus/clamav/files/digest-clamav-0.91.2-r1
@@ -0,0 +1,3 @@
+MD5 2a7265d17cfa80c32858978f16a3f47b clamav-0.91.2.tar.gz 13394538
+RMD160 9e181a7a4fd08377ff47663aed27f8cc97249a21 clamav-0.91.2.tar.gz 13394538
+SHA256 dac9de86dff5ef4c9a6e4962da24988e1aa74948a21b7fb7b7fed17867ddf2a0 clamav-0.91.2.tar.gz 13394538