On 2009/04/08 12:37, b...@openbsd.rutgers.edu wrote: > http://openbsd.rutgers.edu/4.4-stable/diffs/security,clamav-0.94.2p0.diff > > Sent to mbalmer@ earlier, but I suspect he's working on a proper update > to 0.95. > > This fixes the security issue by applying the patch found here: > > https://wwws.clamav.net/bugzilla/attachment.cgi?id=978 > > I have the resulting package in production on amd64 for nearly a week > under heavy load with no issues.
here's an evil update to 0.95. (note the nasty LIBTOOL= line...) Index: Makefile =================================================================== RCS file: /cvs/ports/security/clamav/Makefile,v retrieving revision 1.41 diff -N -u -p Makefile --- Makefile 13 Dec 2008 10:19:09 -0000 1.41 +++ Makefile 8 Apr 2009 16:47:25 -0000 @@ -1,11 +1,11 @@ # $OpenBSD: Makefile,v 1.41 2008/12/13 10:19:09 mbalmer Exp $ COMMENT= virus scanner -DISTNAME= clamav-0.94.2 +DISTNAME= clamav-0.95 CATEGORIES= security -SHARED_LIBS= clamav 10.0 \ - clamunrar 1.0 \ - clamunrar_iface 1.0 +SHARED_LIBS= clamav 11.0 \ + clamunrar 2.0 \ + clamunrar_iface 2.0 HOMEPAGE= http://www.clamav.net/ @@ -17,12 +17,11 @@ PERMIT_PACKAGE_FTP= Yes PERMIT_DISTFILES_CDROM= Yes PERMIT_DISTFILES_FTP= Yes -WANTLIB= c milter pthread wrap z +WANTLIB= c milter ncurses pthread z BUILD_DEPENDS= ::devel/check -LIB_DEPENDS= gmp.>=6::devel/gmp \ - bz2.>=10::archivers/bzip2 \ +LIB_DEPENDS= bz2.>=10::archivers/bzip2 \ iconv.>=4::converters/libiconv RUN_DEPENDS= :lha-*:archivers/lha \ @@ -31,9 +30,9 @@ RUN_DEPENDS= :lha-*:archivers/lha \ :unzip-*:archivers/unzip USE_LIBTOOL= Yes +LIBTOOL= ${WRKSRC}/libtool -MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=clamav/} \ - ${HOMEPAGE} +MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=clamav/} CONFIGURE_STYLE= gnu CONFIGURE_ARGS+= ${CONFIGURE_SHARED} @@ -49,7 +48,7 @@ CONFIGURE_ARGS+= --disable-clamav \ REGRESS_TARGET= check -CONFIGURE_ENV+= LDFLAGS="-pthread -L/usr/lib -L../libclamav/.libs -L${LOCALBASE}/lib" \ +CONFIGURE_ENV+= LDFLAGS="-pthread -L/usr/lib -L${WRKSRC}/libclamav/.libs -L${LOCALBASE}/lib" \ CPPFLAGS="-I/usr/include -I${LOCALBASE}/include" DOCS= clamav-mirror-howto.pdf clamdoc.pdf signatures.pdf @@ -58,8 +57,8 @@ post-install: ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/clamav \ ${PREFIX}/share/examples/clamav cd ${WRKSRC}/docs; ${INSTALL_DATA} ${DOCS} ${PREFIX}/share/doc/clamav - cd ${WRKSRC}/etc; ${INSTALL_DATA} clamd.conf \ - freshclam.conf ${PREFIX}/share/examples/clamav + cd ${WRKSRC}/etc; ${INSTALL_DATA} clamd.conf freshclam.conf \ + clamav-milter.conf ${PREFIX}/share/examples/clamav cd ${WRKSRC}/examples; ${INSTALL_DATA} ex1.c \ ${PREFIX}/share/examples/clamav Index: distinfo =================================================================== RCS file: /cvs/ports/security/clamav/distinfo,v retrieving revision 1.29 diff -N -u -p distinfo --- distinfo 13 Dec 2008 10:19:09 -0000 1.29 +++ distinfo 8 Apr 2009 16:47:25 -0000 @@ -1,5 +1,5 @@ -MD5 (clamav-0.94.2.tar.gz) = EYHm1iNBuEcI8SbMNT9+vw== -RMD160 (clamav-0.94.2.tar.gz) = rnXl9Ub5a3/Q923Pn0l37JW6Tbo= -SHA1 (clamav-0.94.2.tar.gz) = gjc9JduLg2/YiyQU30O7DHGSzO0= -SHA256 (clamav-0.94.2.tar.gz) = Gux/7P83WVjQZ6zuuXgtP/C+fBO+0O7PYkD7CJ+NJow= -SIZE (clamav-0.94.2.tar.gz) = 22107637 +MD5 (clamav-0.95.tar.gz) = mFkDhrqaaQOVgLG/SMoDiw== +RMD160 (clamav-0.95.tar.gz) = vSQx0S87t0Ciz1NdpL5RKqm6LBQ= +SHA1 (clamav-0.95.tar.gz) = hVC3ncam6aB4LuW9Apu9EH+eCFo= +SHA256 (clamav-0.95.tar.gz) = TxJuz9IAhsRS8lrrZ1eiAPaOh9qCqjlUJSBDXi99Mac= +SIZE (clamav-0.95.tar.gz) = 24104169 Index: patches/patch-clamav_milter-clamav_milter_c =================================================================== RCS file: /cvs/ports/security/clamav/patches/patch-clamav_milter-clamav_milter_c,v retrieving revision 1.11 diff -N -u -p patches/patch-clamav_milter-clamav_milter_c --- patches/patch-clamav_milter-clamav_milter_c 7 Nov 2008 22:33:06 -0000 1.11 +++ /dev/null 1 Nov 2007 14:18:14 -0000 @@ -1,20 +0,0 @@ ---- clamav-milter/clamav-milter.c.orig Thu Oct 16 09:29:55 2008 -+++ clamav-milter/clamav-milter.c Fri Nov 7 02:29:18 2008 -@@ -1204,7 +1204,7 @@ main(int argc, char **argv) - * uid == 0 for that - */ - on = 1; -- if(setsockopt(broadcastSock, SOL_SOCKET, SO_BROADCAST, (int *)&on, sizeof(on)) < 0) { -+ if(setsockopt(broadcastSock, SOL_SOCKET, 0, (int *)&on, sizeof(on)) < 0) { - perror("setsockopt"); - return EX_UNAVAILABLE; - } -@@ -1227,7 +1227,7 @@ main(int argc, char **argv) - memset(&ifr, '\0', sizeof(struct ifreq)); - strncpy(ifr.ifr_name, iface, sizeof(ifr.ifr_name) - 1); - ifr.ifr_name[sizeof(ifr.ifr_name)-1]='\0'; -- if(setsockopt(broadcastSock, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr)) < 0) { -+ if(setsockopt(broadcastSock, SOL_SOCKET, 0, &ifr, sizeof(ifr)) < 0) { - perror(iface); - return EX_CONFIG; - } Index: patches/patch-clamd_Makefile_in =================================================================== RCS file: /cvs/ports/security/clamav/patches/patch-clamd_Makefile_in,v retrieving revision 1.9 diff -N -u -p patches/patch-clamd_Makefile_in --- patches/patch-clamd_Makefile_in 7 Nov 2008 22:33:06 -0000 1.9 +++ patches/patch-clamd_Makefile_in 8 Apr 2009 16:47:25 -0000 @@ -1,7 +1,7 @@ $OpenBSD: patch-clamd_Makefile_in,v 1.9 2008/11/07 22:33:06 sthen Exp $ ---- clamd/Makefile.in.orig Thu Oct 30 16:13:30 2008 -+++ clamd/Makefile.in Fri Nov 7 02:30:10 2008 -@@ -157,7 +157,9 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ +--- clamd/Makefile.in.orig Mon Mar 23 17:09:28 2009 ++++ clamd/Makefile.in Tue Mar 24 22:43:14 2009 +@@ -159,7 +159,9 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LCOV = @LCOV@ LD = @LD@ @@ -9,6 +9,6 @@ $OpenBSD: patch-clamd_Makefile_in,v 1.9 2008/11/07 22: +# Do not generate "LDFLAGS = -L/usr/local/lib" to build on systems that have +# have an older libclamav installed. +# LDFLAGS = @LDFLAGS@ - LIBBZ2 = @LIBBZ2@ - LIBBZ2_PREFIX = @LIBBZ2_PREFIX@ - LIBCLAMAV_LIBS = @LIBCLAMAV_LIBS@ + LIBADD_DL = @LIBADD_DL@ + LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ + LIBADD_DLOPEN = @LIBADD_DLOPEN@ Index: patches/patch-database_Makefile_in =================================================================== RCS file: /cvs/ports/security/clamav/patches/patch-database_Makefile_in,v retrieving revision 1.4 diff -N -u -p patches/patch-database_Makefile_in --- patches/patch-database_Makefile_in 7 Nov 2008 22:33:06 -0000 1.4 +++ patches/patch-database_Makefile_in 8 Apr 2009 16:47:25 -0000 @@ -1,7 +1,7 @@ $OpenBSD: patch-database_Makefile_in,v 1.4 2008/11/07 22:33:06 sthen Exp $ ---- database/Makefile.in.orig Thu Oct 30 16:13:31 2008 -+++ database/Makefile.in Fri Nov 7 02:29:18 2008 -@@ -382,21 +382,7 @@ uninstall-am: +--- database/Makefile.in.orig Mon Mar 23 17:09:28 2009 ++++ database/Makefile.in Tue Mar 24 00:43:32 2009 +@@ -396,21 +396,7 @@ uninstall-am: install-data-local: Index: patches/patch-etc-clamd_conf =================================================================== RCS file: /cvs/ports/security/clamav/patches/patch-etc-clamd_conf,v retrieving revision 1.5 diff -N -u -p patches/patch-etc-clamd_conf --- patches/patch-etc-clamd_conf 14 Sep 2008 15:00:43 -0000 1.5 +++ patches/patch-etc-clamd_conf 8 Apr 2009 16:47:25 -0000 @@ -1,5 +1,5 @@ ---- etc/clamd.conf.orig Tue Sep 2 12:59:05 2008 -+++ etc/clamd.conf Fri Sep 5 02:32:34 2008 +--- etc/clamd.conf.orig Mon Mar 16 18:37:27 2009 ++++ etc/clamd.conf Tue Mar 24 00:43:32 2009 @@ -11,7 +11,7 @@ Example # LogFile must be writable for the user running daemon. # A full path is required. @@ -16,8 +16,8 @@ -#DatabaseDirectory /var/lib/clamav +#DatabaseDirectory /var/db/clamav - # The daemon works in a local OR a network mode. Due to security reasons we - # recommend the local mode. + # The daemon can work in local mode, network mode or both. + # Due to security reasons we recommend the local mode. @@ -147,7 +147,7 @@ LocalSocket /tmp/clamd.socket # Run as another user (clamd must be started by root for this option to work) Index: patches/patch-etc_Makefile_in =================================================================== RCS file: /cvs/ports/security/clamav/patches/patch-etc_Makefile_in,v retrieving revision 1.4 diff -N -u -p patches/patch-etc_Makefile_in --- patches/patch-etc_Makefile_in 7 Nov 2008 22:33:06 -0000 1.4 +++ patches/patch-etc_Makefile_in 8 Apr 2009 16:47:25 -0000 @@ -1,7 +1,7 @@ $OpenBSD: patch-etc_Makefile_in,v 1.4 2008/11/07 22:33:06 sthen Exp $ ---- etc/Makefile.in.orig Thu Oct 30 16:13:31 2008 -+++ etc/Makefile.in Fri Nov 7 02:29:18 2008 -@@ -381,11 +381,7 @@ uninstall-am: +--- etc/Makefile.in.orig Mon Mar 23 17:09:28 2009 ++++ etc/Makefile.in Tue Mar 24 09:18:51 2009 +@@ -395,13 +395,7 @@ uninstall-am: install-data-local: @@ -10,6 +10,8 @@ $OpenBSD: patch-etc_Makefile_in,v 1.4 2008/11/07 22:33 - $(INSTALL_DATA) $(srcdir)/clamd.conf $(DESTDIR)$(CFGINST) - @test -f $(DESTDIR)$(CFGINST)/freshclam.conf || \ - $(INSTALL_DATA) $(srcdir)/freshclam.conf $(DESTDIR)$(CFGINST) +...@build_clamd_true@@HAVE_MILTER_TRUE@ @test -f $(DESTDIR)$(CFGINST)/clamav-milter.conf || \ +...@build_clamd_true@@HAVE_MILTER_TRUE@ $(INSTALL_DATA) $(srcdir)/clamav-milter.conf $(DESTDIR)$(CFGINST) + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. Index: patches/patch-libclamav_Makefile_am =================================================================== RCS file: /cvs/ports/security/clamav/patches/patch-libclamav_Makefile_am,v retrieving revision 1.8 diff -N -u -p patches/patch-libclamav_Makefile_am --- patches/patch-libclamav_Makefile_am 7 Nov 2008 22:33:06 -0000 1.8 +++ /dev/null 1 Nov 2007 14:18:14 -0000 @@ -1,12 +0,0 @@ -$OpenBSD: patch-libclamav_Makefile_am,v 1.8 2008/11/07 22:33:06 sthen Exp $ ---- libclamav/Makefile.am.orig Tue Oct 7 09:19:25 2008 -+++ libclamav/Makefile.am Fri Nov 7 02:29:18 2008 -@@ -22,7 +22,7 @@ AM_CPPFLAGS = -I$(top_srcdir) -...@srcdir@/nsis -...@srcdi - - libclamav_la_LIBADD = lzma/liblzma.la @CLAMAV_UNRAR_LIBS@ @LIBCLAMAV_LIBS@ @THREAD_LIBS@ - --libclamav_la_LDFLAGS = @TH_SAFE@ -version-info @LIBCLAMAV_VERSION@ -no-undefined -+libclamav_la_LDFLAGS = @TH_SAFE@ $(LIBclamav_LTVERSION) -no-undefined - - if VERSIONSCRIPT - libclamav_la_LDFLAGS += -Wl,@VERSIONSCRIPTFLAG@,@top_srcdir@/libclamav/libclamav.map Index: patches/patch-libclamav_Makefile_in =================================================================== RCS file: /cvs/ports/security/clamav/patches/patch-libclamav_Makefile_in,v retrieving revision 1.9 diff -N -u -p patches/patch-libclamav_Makefile_in --- patches/patch-libclamav_Makefile_in 7 Nov 2008 22:33:06 -0000 1.9 +++ patches/patch-libclamav_Makefile_in 8 Apr 2009 16:47:25 -0000 @@ -1,12 +1,30 @@ $OpenBSD: patch-libclamav_Makefile_in,v 1.9 2008/11/07 22:33:06 sthen Exp $ ---- libclamav/Makefile.in.orig Thu Oct 30 16:13:31 2008 -+++ libclamav/Makefile.in Fri Nov 7 02:31:12 2008 -@@ -283,7 +283,7 @@ top_srcdir = @top_srcdir@ - SUBDIRS = lzma . - AM_CPPFLAGS = -I$(top_srcdir) -...@srcdir@/nsis -...@srcdir@/lzma - libclamav_la_LIBADD = lzma/liblzma.la @CLAMAV_UNRAR_LIBS@ @LIBCLAMAV_LIBS@ @THREAD_LIBS@ +--- libclamav/Makefile.in.orig Mon Mar 23 17:09:29 2009 ++++ libclamav/Makefile.in Tue Mar 24 22:52:35 2009 +@@ -401,7 +401,7 @@ EXTRA_DIST = $(am__append_4) regex/engine.c libclamav. + jsparse/generated/operators.h jsparse/generated/keywords.h \ + jsparse/future_reserved_words.list jsparse/keywords.list \ + jsparse/special_keywords.list jsparse/operators.gperf +...@enable_unrar_true@libclamunrar_la_LDFLAGS = @TH_SAFE@ -version-info \ +...@enable_unrar_true@libclamunrar_la_LDFLAGS = @TH_SAFE@ $(LIBclamunrar_LTVERSION) \ + @ENABLE_UNRAR_TRUE@ @LIBCLAMAV_VERSION@ -no-undefined \ + @ENABLE_UNRAR_TRUE@ $(am__append_2) + @enable_unrar_t...@libclamunrar_la_sources = \ +@@ -425,7 +425,7 @@ EXTRA_DIST = $(am__append_4) regex/engine.c libclamav. + + @enable_unrar_t...@libclamunrar_iface_la_libadd = libclamunrar.la + @enable_unrar_t...@libclamunrar_iface_la_ldflags = -module @TH_SAFE@ \ +...@enable_unrar_true@ -version-info @LIBCLAMAV_VERSION@ \ +...@enable_unrar_true@ $(LIBclamunrar_iface_LTVERSION) @LIBCLAMAV_VERSION@ \ + @ENABLE_UNRAR_TRUE@ -no-undefined $(am__append_5) + @enable_unrar_t...@libclamunrar_iface_la_sources = \ + @ENABLE_UNRAR_TRUE@ ../libclamunrar_iface/unrar_iface.c \ +@@ -473,7 +473,7 @@ libclamav_internal_utils_nothreads_la_LDFLAGS = -stati + libclamav_internal_utils_nothreads_la_CFLAGS = -DCL_NOTHREADS + libclamav_la_LIBADD = @LIBLTDL@ $(IFACELIBADD) lzma/liblzma.la libclamav_internal_utils.la @LIBCLAMAV_LIBS@ @THREAD_LIBS@ + libclamav_la_DEPENDENCIES = @LTDLDEPS@ $(IFACEDEP) libclamav_internal_utils.la -libclamav_la_LDFLAGS = @TH_SAFE@ -version-info @LIBCLAMAV_VERSION@ \ +libclamav_la_LDFLAGS = @TH_SAFE@ $(LIBclamav_LTVERSION) @LIBCLAMAV_VERSION@ \ - -no-undefined $(am__append_1) + -no-undefined $(am__append_6) include_HEADERS = clamav.h - libclamav_la_SOURCES = \ + libclamav_la_SOURCES = clamav.h matcher-ac.c matcher-ac.h matcher-bm.c \ Index: patches/patch-libclamav_mbox_c =================================================================== RCS file: /cvs/ports/security/clamav/patches/patch-libclamav_mbox_c,v retrieving revision 1.6 diff -N -u -p patches/patch-libclamav_mbox_c --- patches/patch-libclamav_mbox_c 16 Apr 2008 19:46:02 -0000 1.6 +++ patches/patch-libclamav_mbox_c 8 Apr 2009 16:47:25 -0000 @@ -1,7 +1,7 @@ ---- libclamav/mbox.c.orig Wed Apr 9 17:29:28 2008 -+++ libclamav/mbox.c Mon Apr 14 18:41:12 2008 -@@ -32,11 +32,6 @@ static char const rcsid[] = "$Id: mbox.c,v 1.381 2007/ - #define NDEBUG /* map CLAMAV debug onto standard */ +--- libclamav/mbox.c.orig Mon Mar 23 12:48:33 2009 ++++ libclamav/mbox.c Tue Mar 24 00:43:32 2009 +@@ -28,11 +28,6 @@ static char const rcsid[] = "$Id: mbox.c,v 1.381 2007/ + #include "clamav-config.h" #endif -#ifdef CL_THREAD_SAFE Index: patches/patch-libclamav_str_c =================================================================== RCS file: /cvs/ports/security/clamav/patches/patch-libclamav_str_c,v retrieving revision 1.5 diff -N -u -p patches/patch-libclamav_str_c --- patches/patch-libclamav_str_c 7 Nov 2008 22:33:06 -0000 1.5 +++ patches/patch-libclamav_str_c 8 Apr 2009 16:47:25 -0000 @@ -1,7 +1,7 @@ $OpenBSD: patch-libclamav_str_c,v 1.5 2008/11/07 22:33:06 sthen Exp $ ---- libclamav/str.c.orig Thu Oct 16 09:29:55 2008 -+++ libclamav/str.c Fri Nov 7 02:29:18 2008 -@@ -152,9 +152,9 @@ char *cli_hex2str(const char *hex) +--- libclamav/str.c.orig Mon Mar 16 18:37:27 2009 ++++ libclamav/str.c Tue Mar 24 00:43:32 2009 +@@ -166,9 +166,9 @@ int cli_hex2str_to(const char *hex, unsigned char *ptr for(i = 0; i < len; i += 2) { if((c = cli_hex2int(hex[i])) >= 0) { @@ -11,5 +11,5 @@ $OpenBSD: patch-libclamav_str_c,v 1.5 2008/11/07 22:33 - val = (val << 4) + c; + val = (val << 4) + (char)c; } else { - free(str); - return NULL; + return -1; + } Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/security/clamav/pkg/PLIST,v retrieving revision 1.11 diff -N -u -p pkg/PLIST --- pkg/PLIST 8 Jul 2008 22:38:12 -0000 1.11 +++ pkg/PLIST 8 Apr 2009 16:47:25 -0000 @@ -4,6 +4,7 @@ bin/clamav-config @bin bin/clamconf @bin bin/clamdscan +...@bin bin/clamdtop @bin bin/clamscan @bin bin/freshclam @bin bin/sigtool @@ -18,6 +19,7 @@ lib/pkgconfig/ lib/pkgconfig/libclamav.pc @man man/man1/clamconf.1 @man man/man1/clamdscan.1 +...@man man/man1/clamdtop.1 @man man/man1/clamscan.1 @man man/man1/freshclam.1 @man man/man1/sigtool.1 @@ -32,11 +34,8 @@ share/doc/clamav/clamav-mirror-howto.pdf share/doc/clamav/clamdoc.pdf share/doc/clamav/signatures.pdf share/examples/clamav/ -share/examples/clamav/clamd.conf -...@sample ${SYSCONFDIR}/clamd.conf -share/examples/clamav/ex1.c -share/examples/clamav/freshclam.conf -...@sample ${SYSCONFDIR}/freshclam.conf +share/examples/clamav/clamav-milter.conf +...@sample ${SYSCONFDIR}/clamav-milter.conf %%SHARED%% @owner _clamav @group _clamav @@ -49,3 +48,11 @@ share/examples/clamav/freshclam.conf @extraunexec rm -fr /var/db/clamav/* @extraunexec rm -fr /var/spool/clamav/* @extraunexec rm -fr /var/clamav/* +...@mode +...@owner +...@group +share/examples/clamav/clamd.conf +...@sample ${SYSCONFDIR}/clamd.conf +share/examples/clamav/ex1.c +share/examples/clamav/freshclam.conf +...@sample ${SYSCONFDIR}/freshclam.conf