* [Buildroot] [PATCH] squidguard: new package @ 2014-10-08 20:38 Guillaume GARDET 2014-10-10 21:51 ` Peter Korsgaard 0 siblings, 1 reply; 5+ messages in thread From: Guillaume GARDET @ 2014-10-08 20:38 UTC (permalink / raw) To: buildroot Signed-off-by: Guillaume GARDET <guillaume.gardet@oliseo.fr> --- package/Config.in | 1 + package/squidguard/Config.in | 24 +++++ package/squidguard/fix-for-db5.patch | 11 ++ package/squidguard/squidGuard-CVE-2009-3700.patch | 46 +++++++++ package/squidguard/squidGuard-CVE-2009-3826.patch | 26 +++++ package/squidguard/squidGuard-Makefile.patch | 115 +++++++++++++++++++++ package/squidguard/squidGuard.conf | 20 ++++ .../squidguard/squidguard-1.4-cross-compile.patch | 38 +++++++ package/squidguard/squidguard.mk | 41 ++++++++ 9 files changed, 322 insertions(+) create mode 100644 package/squidguard/Config.in create mode 100644 package/squidguard/fix-for-db5.patch create mode 100644 package/squidguard/squidGuard-CVE-2009-3700.patch create mode 100644 package/squidguard/squidGuard-CVE-2009-3826.patch create mode 100644 package/squidguard/squidGuard-Makefile.patch create mode 100644 package/squidguard/squidGuard.conf create mode 100644 package/squidguard/squidguard-1.4-cross-compile.patch create mode 100644 package/squidguard/squidguard.mk diff --git a/package/Config.in b/package/Config.in index ea89c96..9c1f282 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1083,6 +1083,7 @@ endif source "package/spice/Config.in" source "package/spice-protocol/Config.in" source "package/squid/Config.in" + source "package/squidguard/Config.in" source "package/sshpass/Config.in" source "package/strongswan/Config.in" source "package/stunnel/Config.in" diff --git a/package/squidguard/Config.in b/package/squidguard/Config.in new file mode 100644 index 0000000..8d3c28e --- /dev/null +++ b/package/squidguard/Config.in @@ -0,0 +1,24 @@ +comment "squidguards needs Squid" + depends on !BR2_PACKAGE_SQUID + +config BR2_PACKAGE_SQUIDGUARD + bool "squidguard" + select BR2_PACKAGE_BISON + select BR2_PACKAGE_FLEX + select BR2_PACKAGE_BERKELEYDB + depends on BR2_PACKAGE_SQUID + help + SquidGuard is a free (GPL), flexible and ultra-fast filter, + redirector, and access controller plugin for squid. + + http://www.squidguard.org/ + +if BR2_PACKAGE_SQUIDGUARD + config BR2_PACKAGE_SQUIDGUARD_DEFAULT_CONF + bool "squidguard default blacklists and configuration" + help + Add default blacklists provided by squidGuard and associated + configuration file. + + http://www.squidguard.org/ +endif diff --git a/package/squidguard/fix-for-db5.patch b/package/squidguard/fix-for-db5.patch new file mode 100644 index 0000000..29fd19b --- /dev/null +++ b/package/squidguard/fix-for-db5.patch @@ -0,0 +1,11 @@ +--- a/src/sgDb.c.orig 2014-07-23 13:10:54.335454387 +0200 ++++ b/src/sgDb.c 2014-07-23 13:14:15.167901834 +0200 +@@ -114,7 +114,7 @@ void sgDbInit(Db, file) + } + } + #endif +-#if DB_VERSION_MAJOR == 4 ++#if DB_VERSION_MAJOR >= 4 + if(globalUpdate || createdb || (dbfile != NULL && stat(dbfile,&st))){ + flag = DB_CREATE; + if(createdb) diff --git a/package/squidguard/squidGuard-CVE-2009-3700.patch b/package/squidguard/squidGuard-CVE-2009-3700.patch new file mode 100644 index 0000000..d370787 --- /dev/null +++ b/package/squidguard/squidGuard-CVE-2009-3700.patch @@ -0,0 +1,46 @@ +Index: squidGuard-1.4/src/sgLog.c +=================================================================== +--- squidGuard-1.4.orig/src/sgLog.c 2007-11-16 17:58:32.000000000 +0100 ++++ squidGuard-1.4/src/sgLog.c 2010-07-29 13:47:50.000000000 +0200 +@@ -2,7 +2,7 @@ + By accepting this notice, you agree to be bound by the following + agreements: + +- This software product, squidGuard, is copyrighted (C) 1998-2007 ++ This software product, squidGuard, is copyrighted (C) 1998-2009 + by Christine Kronberg, Shalla Secure Services. All rights reserved. + + This program is free software; you can redistribute it and/or modify it +@@ -55,8 +55,8 @@ void sgLog(log, format, va_alist) + char msg[MAX_BUF]; + va_list ap; + VA_START(ap, format); +- if(vsprintf(msg, format, ap) > (MAX_BUF - 1)) +- fprintf(stderr,"overflow in vsprintf (sgLog): %s",strerror(errno)); ++ if(vsnprintf(msg, MAX_BUF, format, ap) > (MAX_BUF - 1)) ++ fprintf(stderr,"overflow in vsnprintf (sgLog): %s",strerror(errno)); + va_end(ap); + date = niso(0); + if(globalDebug || log == NULL) { +@@ -87,8 +87,8 @@ void sgLogError(format, va_alist) + char msg[MAX_BUF]; + va_list ap; + VA_START(ap, format); +- if(vsprintf(msg, format, ap) > (MAX_BUF - 1)) +- sgLogFatalError("overflow in vsprintf (sgLogError): %s",strerror(errno)); ++ if(vsnprintf(msg, MAX_BUF, format, ap) > (MAX_BUF - 1)) ++ sgLog(globalErrorLog, "overflow in vsnprintf (sgLogError): %s",strerror(errno)); + va_end(ap); + sgLog(globalErrorLog,"%s",msg); + } +@@ -104,8 +104,8 @@ void sgLogFatalError(format, va_alist) + char msg[MAX_BUF]; + va_list ap; + VA_START(ap, format); +- if(vsprintf(msg, format, ap) > (MAX_BUF - 1)) +- return; ++ if(vsnprintf(msg, MAX_BUF, format, ap) > (MAX_BUF - 1)) ++ sgLog(globalErrorLog, "overflow in vsnprintf (sgLogError): %s",strerror(errno)); + va_end(ap); + sgLog(globalErrorLog,"%s",msg); + sgEmergency(); diff --git a/package/squidguard/squidGuard-CVE-2009-3826.patch b/package/squidguard/squidGuard-CVE-2009-3826.patch new file mode 100644 index 0000000..8d2b623 --- /dev/null +++ b/package/squidguard/squidGuard-CVE-2009-3826.patch @@ -0,0 +1,26 @@ +Index: squidGuard-1.4/src/sg.h.in +=================================================================== +--- squidGuard-1.4.orig/src/sg.h.in ++++ squidGuard-1.4/src/sg.h.in +@@ -73,7 +73,7 @@ int tolower(); + #define REQUEST_TYPE_REDIRECT 2 + #define REQUEST_TYPE_PASS 3 + +-#define MAX_BUF 4096 ++#define MAX_BUF 12288 + + #define DEFAULT_LOGFILE "squidGuard.log" + #define WARNING_LOGFILE "squidGuard.log" +Index: squidGuard-1.4/src/sgDiv.c.in +=================================================================== +--- squidGuard-1.4.orig/src/sgDiv.c.in ++++ squidGuard-1.4/src/sgDiv.c.in +@@ -745,7 +745,7 @@ char *sgParseRedirect(redirect, req, acl + p++; + break; + case 'u': /* Requested URL */ +- strcat(buf, req->orig); ++ strncat(buf, req->orig, 2048); + p++; + break; + default: diff --git a/package/squidguard/squidGuard-Makefile.patch b/package/squidguard/squidGuard-Makefile.patch new file mode 100644 index 0000000..650baa2 --- /dev/null +++ b/package/squidguard/squidGuard-Makefile.patch @@ -0,0 +1,115 @@ +Index: Makefile.in +=================================================================== +--- a/Makefile.in.orig ++++ b/Makefile.in +@@ -15,9 +15,9 @@ LIBS = @LIBS@ + RM = rm -f + MKINSTALLDIRS = mkdir -p + +-prefix = @prefix@ +-exec_prefix = @exec_prefix@ +-bindir = $(exec_prefix)/bin ++prefix = $(DESTDIR)@prefix@ ++exec_prefix = $(DESTDIR)@exec_prefix@ ++bindir = @bindir@ + infodir = $(prefix)/info + logdir = @sg_logdir@ + configfile = @sg_config@ +@@ -47,34 +47,28 @@ install: install-build install-conf + + install-conf: + @echo Installing configuration file ; +- @if [ ! -d $(prefix)/squidGuard ]; then \ +- $(MKINSTALLDIRS) $(prefix)/squidGuard ; \ +- echo Created directory $(prefix)/squidGuard ; \ +- chown -R $(SQUIDUSER) $(prefix)/squidGuard || exit 1 ; \ +- echo Assigned $(prefix)/squidGuard to user $(SQUIDUSER) ; \ ++ @if [ ! -d $(DESTDIR)$(prefix)/squidGuard ]; then \ ++ $(MKINSTALLDIRS) $(DESTDIR)$(prefix)/squidGuard ; \ ++ echo Created directory $(DESTDIR)$(prefix)/squidGuard ; \ + fi ; +- @if [ ! -d $(dbhomedir) ]; then \ +- $(MKINSTALLDIRS) $(dbhomedir) ; \ +- echo Created directory $(dbhomedir) ; \ +- chown -R $(SQUIDUSER) $(dbhomedir) || exit 1 ; \ +- echo Assigned $(dbhomedir) to user $(SQUIDUSER) ; \ ++ @if [ ! -d $(DESTDIR)$(dbhomedir) ]; then \ ++ $(MKINSTALLDIRS) $(DESTDIR)$(dbhomedir) ; \ ++ echo Created directory $(DESTDIR)$(dbhomedir) ; \ + fi ; +- @if [ ! -d $(logdir) ]; then \ +- $(MKINSTALLDIRS) $(logdir) ; \ +- echo Created directory $(logdir) ; \ +- chown -R $(SQUIDUSER) $(logdir) || exit 1 ; \ +- echo Assigned $(logdir) to user $(SQUIDUSER) ; \ ++ @if [ ! -d $(DESTDIR)$(logdir) ]; then \ ++ $(MKINSTALLDIRS) $(DESTDIR)$(logdir) ; \ ++ echo Created directory $(DESTDIR)$(logdir) ; \ + fi ; +- @if [ ! -d `dirname $(configfile)` ]; then \ ++ @if [ ! -d `dirname $(DESTDIR)$(configfile)` ]; then \ + umask 022 ; \ +- mkdir -p `dirname $(configfile)` ; \ +- echo No configuration directory found. Created `dirname $(configfile)`. ; \ ++ mkdir -p `dirname $(DESTDIR)$(configfile)` ; \ ++ echo No configuration directory found. Created `dirname $(DESTDIR)$(configfile)`. ; \ + fi; +- @if test ! -f $(configfile); then \ +- cp samples/sample.conf $(configfile) || exit 1 ; \ ++ @if test ! -f $(DESTDIR)$(configfile); then \ ++ cp samples/sample.conf $(DESTDIR)$(configfile) || exit 1 ; \ + echo Copied sample squidGuard.conf ; \ +- chmod 644 $(configfile) || exit 1 ; \ +- echo $(configfile) is now readable ; \ ++ chmod 644 $(DESTDIR)$(configfile) || exit 1 ; \ ++ echo $(DESTDIR)$(configfile) is now readable ; \ + echo The initial configuration is complete. ; \ + else \ + echo Configuration file found. Not changing anything ; \ +@@ -84,7 +78,7 @@ install-conf: + @echo ; + + install-build: +- @echo Installing squidGuard ++ @echo Installing squidGuard in $(bindir) + @if [ ! -d $(bindir) ]; then \ + $(MKINSTALLDIRS) $(bindir) ; \ + fi ; \ +Index: src/Makefile.in +=================================================================== +--- a/src/Makefile.in.orig ++++ b/src/Makefile.in +@@ -31,11 +31,11 @@ top_srcdir = @top_srcdir@ + srcdir = @srcdir@ + VPATH = @srcdir@ + +-prefix = @prefix@ +-exec_prefix = @exec_prefix@ +-bindir = $(exec_prefix)/bin +-logdir = @sg_logdir@ +-cfgdir = @sg_cfgdir@ ++prefix = $(DESTDIR)@prefix@ ++exec_prefix = $(DESTDIR)@exec_prefix@ ++bindir = $(DESTDIR)@bindir@ ++logdir = $(DESTDIR)@sg_logdir@ ++cfgdir = $(DESTDIR)@sg_cfgdir@ + infodir = $(prefix)/info + + OBJS = main.o sgLog.o sgDb.o HTParse.o sgDiv.o sgFree.o y.tab.o lex.yy.o +@@ -122,12 +122,13 @@ uninstall:: uninstall.bin + + install.bin:: squidGuard + @echo making $@ in `basename \`pwd\`` +- @$(MKDIR) $(bindir) $(logdir) $(cfgdir) +- $(INSTALL_PROGRAM) squidGuard $(bindir)/squidGuard ++ @$(MKDIR) $(DESTDIR)$(bindir) $(DESTDIR)$(logdir) $(DESTDIR)$(cfgdir) ++ @echo installing squidGuard in $(DESTDIR)$(bindir)/squidGuard ++ $(INSTALL_PROGRAM) squidGuard $(DESTDIR)$(bindir)/squidGuard + + uninstall.bin:: + @echo making $@ in `basename \`pwd\`` +- $(RM) $(bindir)/squidGuard ++ $(RM) $(DESTDIR)$(bindir)/squidGuard + + update:: + @echo making $@ in `basename \`pwd\`` diff --git a/package/squidguard/squidGuard.conf b/package/squidguard/squidGuard.conf new file mode 100644 index 0000000..c2d612f --- /dev/null +++ b/package/squidguard/squidGuard.conf @@ -0,0 +1,20 @@ +# +# Default config file for squidGuard +# + +dbhome /var/lib/squidGuard/db +logdir /var/log/squidGuard + + +dest blacklist { + domainlist blacklist/domains + urllist blacklist/urls + expressionlist blacklist/expressions + } + +acl { + default { + pass !blacklist all + redirect http://localhost/block.html + } +} \ No newline at end of file diff --git a/package/squidguard/squidguard-1.4-cross-compile.patch b/package/squidguard/squidguard-1.4-cross-compile.patch new file mode 100644 index 0000000..43fced9 --- /dev/null +++ b/package/squidguard/squidguard-1.4-cross-compile.patch @@ -0,0 +1,38 @@ +--- a/configure.orig 2014-07-17 13:40:02.276083485 +0200 ++++ b/configure 2014-07-17 13:41:04.645497630 +0200 +@@ -4602,7 +4602,7 @@ fi + + LIBS="$LIBS -ldb" + if test "$cross_compiling" = yes; then +- db_ok_version=no ++ db_ok_version=yes + else + cat >conftest.$ac_ext <<_ACEOF + +@@ -4671,7 +4671,7 @@ if test $db_ok_version = no; then + fi + + if test "$cross_compiling" = yes; then +- db_ok_version=no ++ db_ok_version=yes + else + cat >conftest.$ac_ext <<_ACEOF + +@@ -4741,7 +4741,7 @@ if test $db_ok_version = no; then + fi + + if test "$cross_compiling" = yes; then +- dbg2_ok_version=no ++ dbg2_ok_version=yes + else + cat >conftest.$ac_ext <<_ACEOF + +@@ -4806,7 +4806,7 @@ _ACEOF + fi + + if test "$cross_compiling" = yes; then +- dbg3_ok_version=no ++ dbg3_ok_version=yes + else + cat >conftest.$ac_ext <<_ACEOF + diff --git a/package/squidguard/squidguard.mk b/package/squidguard/squidguard.mk new file mode 100644 index 0000000..d2f062f --- /dev/null +++ b/package/squidguard/squidguard.mk @@ -0,0 +1,41 @@ +############################################################################### +# +# squidguard +# +############################################################################### + +SQUIDGUARD_VERSION = 1.4 +SQUIDGUARD_SOURCE = squidGuard-$(SQUIDGUARD_VERSION).tar.gz +SQUIDGUARD_SITE = http://www.squidguard.org/Downloads/ +SQUIDGUARD_LICENCE = GPLv2+ +SQUIDGUARD_LICENCE_FILE = COPYING +SQUIDGUARD_CONF_OPTS += --with-sg-config=/etc/squidGuard.conf \ + --with-sg-logdir=/var/log/squidGuard \ + --with-sg-dbhome=/var/lib/squidGuard/db \ + --with-db-inc=$(STAGING_DIR)/usr/include \ + --with-db-lib=$(STAGING_DIR)/usr/lib +SQUIDGUARD_DEPENDENCIES = bison flex berkeleydb + + +ifeq ($(BR2_PACKAGE_SQUIDGUARD_DEFAULT_CONF),y) + +define DEFAULT_BLACKLIST + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/domains \ + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/domains + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/expressions \ + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/expressions + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/urls \ + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/urls +endef + +define DEFAULT_CONF + $(INSTALL) -m 0644 -D package/squidguard/squidGuard.conf \ + $(TARGET_DIR)/etc/squidGuard.conf +endef + +SQUIDGUARD_POST_INSTALL_TARGET_HOOKS = DEFAULT_BLACKLIST DEFAULT_CONF + +endif + + +$(eval $(autotools-package)) -- 1.8.4.5 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH] squidguard: new package 2014-10-08 20:38 [Buildroot] [PATCH] squidguard: new package Guillaume GARDET @ 2014-10-10 21:51 ` Peter Korsgaard 2014-10-16 10:23 ` Guillaume GARDET - Oliséo 0 siblings, 1 reply; 5+ messages in thread From: Peter Korsgaard @ 2014-10-10 21:51 UTC (permalink / raw) To: buildroot >>>>> "Guillaume" == Guillaume GARDET <guillaume.gardet@oliseo.fr> writes: > Signed-off-by: Guillaume GARDET <guillaume.gardet@oliseo.fr> > --- > package/Config.in | 1 + > package/squidguard/Config.in | 24 +++++ > package/squidguard/fix-for-db5.patch | 11 ++ > package/squidguard/squidGuard-CVE-2009-3700.patch | 46 +++++++++ > package/squidguard/squidGuard-CVE-2009-3826.patch | 26 +++++ > package/squidguard/squidGuard-Makefile.patch | 115 +++++++++++++++++++++ > package/squidguard/squidGuard.conf | 20 ++++ > .../squidguard/squidguard-1.4-cross-compile.patch | 38 +++++++ > package/squidguard/squidguard.mk | 41 ++++++++ > 9 files changed, 322 insertions(+) > create mode 100644 package/squidguard/Config.in > create mode 100644 package/squidguard/fix-for-db5.patch > create mode 100644 package/squidguard/squidGuard-CVE-2009-3700.patch > create mode 100644 package/squidguard/squidGuard-CVE-2009-3826.patch > create mode 100644 package/squidguard/squidGuard-Makefile.patch > create mode 100644 package/squidguard/squidGuard.conf > create mode 100644 package/squidguard/squidguard-1.4-cross-compile.patch > create mode 100644 package/squidguard/squidguard.mk > diff --git a/package/Config.in b/package/Config.in > index ea89c96..9c1f282 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -1083,6 +1083,7 @@ endif > source "package/spice/Config.in" > source "package/spice-protocol/Config.in" > source "package/squid/Config.in" > + source "package/squidguard/Config.in" > source "package/sshpass/Config.in" > source "package/strongswan/Config.in" > source "package/stunnel/Config.in" > diff --git a/package/squidguard/Config.in b/package/squidguard/Config.in > new file mode 100644 > index 0000000..8d3c28e > --- /dev/null > +++ b/package/squidguard/Config.in > @@ -0,0 +1,24 @@ > +comment "squidguards needs Squid" > + depends on !BR2_PACKAGE_SQUID squid should not be capitalized. I don't know much about squid and these plugins, but would anybody needing this NOT enable squid just above already? Perhaps the comment isn't really needed? > + > +config BR2_PACKAGE_SQUIDGUARD > + bool "squidguard" > + select BR2_PACKAGE_BISON BR2_PACKAGE_BISON has a number of toolchain dependencies that you need to reproduce here (wchar, mmu). With that said, are you sure you need bison on the TARGET and not host-bison? > + select BR2_PACKAGE_FLEX > + select BR2_PACKAGE_BERKELEYDB > + depends on BR2_PACKAGE_SQUID > + help > + SquidGuard is a free (GPL), flexible and ultra-fast filter, > + redirector, and access controller plugin for squid. > + > + http://www.squidguard.org/ > + > +if BR2_PACKAGE_SQUIDGUARD > + config BR2_PACKAGE_SQUIDGUARD_DEFAULT_CONF This 'config' line should not be indented. > + bool "squidguard default blacklists and configuration" > + help > + Add default blacklists provided by squidGuard and associated > + configuration file. > + > + http://www.squidguard.org/ > +endif > diff --git a/package/squidguard/fix-for-db5.patch b/package/squidguard/fix-for-db5.patch > new file mode 100644 > index 0000000..29fd19b > --- /dev/null > +++ b/package/squidguard/fix-for-db5.patch All patches should contain a git-style header with description and your signed-off-by tag. They should also be prefixed with <pkg>-<number>-, E.G squidguard-01-fix-for-db5.patch. > +++ b/package/squidguard/squidguard.mk > @@ -0,0 +1,41 @@ > +############################################################################### > +# > +# squidguard > +# > +############################################################################### > + > +SQUIDGUARD_VERSION = 1.4 > +SQUIDGUARD_SOURCE = squidGuard-$(SQUIDGUARD_VERSION).tar.gz > +SQUIDGUARD_SITE = http://www.squidguard.org/Downloads/ > +SQUIDGUARD_LICENCE = GPLv2+ > +SQUIDGUARD_LICENCE_FILE = COPYING > +SQUIDGUARD_CONF_OPTS += --with-sg-config=/etc/squidGuard.conf \ > + --with-sg-logdir=/var/log/squidGuard \ > + --with-sg-dbhome=/var/lib/squidGuard/db \ > + --with-db-inc=$(STAGING_DIR)/usr/include \ > + --with-db-lib=$(STAGING_DIR)/usr/lib Are these --with-db-* needed? The cross compiler should automatically look there for headers/libraries. > +SQUIDGUARD_DEPENDENCIES = bison flex berkeleydb > + > + > +ifeq ($(BR2_PACKAGE_SQUIDGUARD_DEFAULT_CONF),y) > + > +define DEFAULT_BLACKLIST > + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/domains \ > + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/domains > + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/expressions \ > + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/expressions > + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/urls \ > + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/urls > +endef > + > +define DEFAULT_CONF > + $(INSTALL) -m 0644 -D package/squidguard/squidGuard.conf \ > + $(TARGET_DIR)/etc/squidGuard.conf > +endef > + > +SQUIDGUARD_POST_INSTALL_TARGET_HOOKS = DEFAULT_BLACKLIST DEFAULT_CONF Buildroot uses a global namespace, so these should be prefixed with SQUIDGUARD_. Care to fix these issues and resend? Thanks. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH] squidguard: new package 2014-10-10 21:51 ` Peter Korsgaard @ 2014-10-16 10:23 ` Guillaume GARDET - Oliséo 2014-10-17 21:10 ` Yann E. MORIN 2015-07-02 9:50 ` [Buildroot] [PATCH V2] " Guillaume GARDET 0 siblings, 2 replies; 5+ messages in thread From: Guillaume GARDET - Oliséo @ 2014-10-16 10:23 UTC (permalink / raw) To: buildroot Le 10/10/2014 23:51, Peter Korsgaard a ?crit : >>>>>> "Guillaume" == Guillaume GARDET <guillaume.gardet@oliseo.fr> writes: > > Signed-off-by: Guillaume GARDET <guillaume.gardet@oliseo.fr> > > --- > > package/Config.in | 1 + > > package/squidguard/Config.in | 24 +++++ > > package/squidguard/fix-for-db5.patch | 11 ++ > > package/squidguard/squidGuard-CVE-2009-3700.patch | 46 +++++++++ > > package/squidguard/squidGuard-CVE-2009-3826.patch | 26 +++++ > > package/squidguard/squidGuard-Makefile.patch | 115 +++++++++++++++++++++ > > package/squidguard/squidGuard.conf | 20 ++++ > > .../squidguard/squidguard-1.4-cross-compile.patch | 38 +++++++ > > package/squidguard/squidguard.mk | 41 ++++++++ > > 9 files changed, 322 insertions(+) > > create mode 100644 package/squidguard/Config.in > > create mode 100644 package/squidguard/fix-for-db5.patch > > create mode 100644 package/squidguard/squidGuard-CVE-2009-3700.patch > > create mode 100644 package/squidguard/squidGuard-CVE-2009-3826.patch > > create mode 100644 package/squidguard/squidGuard-Makefile.patch > > create mode 100644 package/squidguard/squidGuard.conf > > create mode 100644 package/squidguard/squidguard-1.4-cross-compile.patch > > create mode 100644 package/squidguard/squidguard.mk > > > diff --git a/package/Config.in b/package/Config.in > > index ea89c96..9c1f282 100644 > > --- a/package/Config.in > > +++ b/package/Config.in > > @@ -1083,6 +1083,7 @@ endif > > source "package/spice/Config.in" > > source "package/spice-protocol/Config.in" > > source "package/squid/Config.in" > > + source "package/squidguard/Config.in" > > source "package/sshpass/Config.in" > > source "package/strongswan/Config.in" > > source "package/stunnel/Config.in" > > diff --git a/package/squidguard/Config.in b/package/squidguard/Config.in > > new file mode 100644 > > index 0000000..8d3c28e > > --- /dev/null > > +++ b/package/squidguard/Config.in > > @@ -0,0 +1,24 @@ > > +comment "squidguards needs Squid" > > + depends on !BR2_PACKAGE_SQUID > > squid should not be capitalized. I don't know much about squid and these > plugins, but would anybody needing this NOT enable squid just above > already? Perhaps the comment isn't really needed? I think it is better to keep it but if you think I should remove it, I will. Just tell me. > > > + > > +config BR2_PACKAGE_SQUIDGUARD > > + bool "squidguard" > > + select BR2_PACKAGE_BISON > > BR2_PACKAGE_BISON has a number of toolchain dependencies that you need > to reproduce here (wchar, mmu). With that said, are you sure you need > bison on the TARGET and not host-bison? Good catch, host-bison is what is needed. Will fix it. > > > + select BR2_PACKAGE_FLEX > > > > + select BR2_PACKAGE_BERKELEYDB > > + depends on BR2_PACKAGE_SQUID > > + help > > + SquidGuard is a free (GPL), flexible and ultra-fast filter, > > + redirector, and access controller plugin for squid. > > > > + > > + http://www.squidguard.org/ > > + > > +if BR2_PACKAGE_SQUIDGUARD > > + config BR2_PACKAGE_SQUIDGUARD_DEFAULT_CONF > > This 'config' line should not be indented. ok. > > > + bool "squidguard default blacklists and configuration" > > + help > > + Add default blacklists provided by squidGuard and associated > > + configuration file. > > + > > + http://www.squidguard.org/ > > +endif > > diff --git a/package/squidguard/fix-for-db5.patch b/package/squidguard/fix-for-db5.patch > > new file mode 100644 > > index 0000000..29fd19b > > --- /dev/null > > +++ b/package/squidguard/fix-for-db5.patch > > All patches should contain a git-style header with description and your > signed-off-by tag. They should also be prefixed with <pkg>-<number>-, > E.G squidguard-01-fix-for-db5.patch. ok. > > > +++ b/package/squidguard/squidguard.mk > > @@ -0,0 +1,41 @@ > > +############################################################################### > > +# > > +# squidguard > > +# > > +############################################################################### > > + > > +SQUIDGUARD_VERSION = 1.4 > > +SQUIDGUARD_SOURCE = squidGuard-$(SQUIDGUARD_VERSION).tar.gz > > +SQUIDGUARD_SITE = http://www.squidguard.org/Downloads/ > > +SQUIDGUARD_LICENCE = GPLv2+ > > +SQUIDGUARD_LICENCE_FILE = COPYING > > +SQUIDGUARD_CONF_OPTS += --with-sg-config=/etc/squidGuard.conf \ > > + --with-sg-logdir=/var/log/squidGuard \ > > + --with-sg-dbhome=/var/lib/squidGuard/db \ > > + --with-db-inc=$(STAGING_DIR)/usr/include \ > > + --with-db-lib=$(STAGING_DIR)/usr/lib > > Are these --with-db-* needed? The cross compiler should automatically > look there for headers/libraries. It does not, that is why I added it. > > > > +SQUIDGUARD_DEPENDENCIES = bison flex berkeleydb > > + > > + > > +ifeq ($(BR2_PACKAGE_SQUIDGUARD_DEFAULT_CONF),y) > > + > > +define DEFAULT_BLACKLIST > > + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/domains \ > > + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/domains > > + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/expressions \ > > + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/expressions > > + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/urls \ > > + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/urls > > +endef > > + > > +define DEFAULT_CONF > > + $(INSTALL) -m 0644 -D package/squidguard/squidGuard.conf \ > > + $(TARGET_DIR)/etc/squidGuard.conf > > +endef > > + > > +SQUIDGUARD_POST_INSTALL_TARGET_HOOKS = DEFAULT_BLACKLIST DEFAULT_CONF > > Buildroot uses a global namespace, so these should be prefixed with SQUIDGUARD_. ok. > > Care to fix these issues and resend? Thanks. > Will do. Guillaume ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH] squidguard: new package 2014-10-16 10:23 ` Guillaume GARDET - Oliséo @ 2014-10-17 21:10 ` Yann E. MORIN 2015-07-02 9:50 ` [Buildroot] [PATCH V2] " Guillaume GARDET 1 sibling, 0 replies; 5+ messages in thread From: Yann E. MORIN @ 2014-10-17 21:10 UTC (permalink / raw) To: buildroot Guillaume, All, On 2014-10-16 12:23 +0200, Guillaume GARDET - Olis?o spake thusly: > Le 10/10/2014 23:51, Peter Korsgaard a ?crit : > >>>>>>"Guillaume" == Guillaume GARDET <guillaume.gardet@oliseo.fr> writes: [--SNIP--] > > > diff --git a/package/squidguard/Config.in b/package/squidguard/Config.in > > > new file mode 100644 > > > index 0000000..8d3c28e > > > --- /dev/null > > > +++ b/package/squidguard/Config.in > > > @@ -0,0 +1,24 @@ > > > +comment "squidguards needs Squid" > > > + depends on !BR2_PACKAGE_SQUID > > > >squid should not be capitalized. I don't know much about squid and these > >plugins, but would anybody needing this NOT enable squid just above > >already? Perhaps the comment isn't really needed? > > I think it is better to keep it but if you think I should remove it, I will. Just tell me. I side with Peter here. Squid is an obvious dependency of squidguard, so the comment is not needed. Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH V2] squidguard: new package 2014-10-16 10:23 ` Guillaume GARDET - Oliséo 2014-10-17 21:10 ` Yann E. MORIN @ 2015-07-02 9:50 ` Guillaume GARDET 1 sibling, 0 replies; 5+ messages in thread From: Guillaume GARDET @ 2015-07-02 9:50 UTC (permalink / raw) To: buildroot Signed-off-by: Guillaume GARDET <guillaume.gardet@oliseo.fr> Cc: Peter Korsgaard <peter@korsgaard.com> --- Changes in V2: * Remove comment on squid dependency * Switch to 'host-' bison and flex dependencies * Fix config line indentation * Add git-style header to patches * Rename patches to <pkg>-<number>-XXX.patch format * Add missing SQUIDGUARD_ prefix in squidguard.mk * Add one more official patch package/Config.in | 1 + package/squidguard/Config.in | 19 ++++ package/squidguard/squidGuard.conf | 20 ++++ package/squidguard/squidguard-01-fix-for-db5.patch | 15 +++ .../squidguard/squidguard-02-Fix_Makefile.patch | 120 +++++++++++++++++++++ .../squidguard/squidguard-03-cross-compile.patch | 42 ++++++++ .../squidguard-04-Official-patch-20091015.patch | 65 +++++++++++ .../squidguard-05-Official-patch-20091019.patch | 45 ++++++++ .../squidguard-06-Official-patch-20150201.patch | 87 +++++++++++++++ package/squidguard/squidguard.mk | 41 +++++++ 10 files changed, 455 insertions(+) create mode 100644 package/squidguard/Config.in create mode 100644 package/squidguard/squidGuard.conf create mode 100644 package/squidguard/squidguard-01-fix-for-db5.patch create mode 100644 package/squidguard/squidguard-02-Fix_Makefile.patch create mode 100644 package/squidguard/squidguard-03-cross-compile.patch create mode 100644 package/squidguard/squidguard-04-Official-patch-20091015.patch create mode 100644 package/squidguard/squidguard-05-Official-patch-20091019.patch create mode 100644 package/squidguard/squidguard-06-Official-patch-20150201.patch create mode 100644 package/squidguard/squidguard.mk diff --git a/package/Config.in b/package/Config.in index 13a7e74..da0e3a5 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1295,6 +1295,7 @@ endif source "package/spice/Config.in" source "package/spice-protocol/Config.in" source "package/squid/Config.in" + source "package/squidguard/Config.in" source "package/sshpass/Config.in" source "package/strongswan/Config.in" source "package/stunnel/Config.in" diff --git a/package/squidguard/Config.in b/package/squidguard/Config.in new file mode 100644 index 0000000..8b06c3c --- /dev/null +++ b/package/squidguard/Config.in @@ -0,0 +1,19 @@ +config BR2_PACKAGE_SQUIDGUARD + bool "squidguard" + select BR2_PACKAGE_BERKELEYDB + depends on BR2_PACKAGE_SQUID + help + SquidGuard is a free (GPL), flexible and ultra-fast filter, + redirector, and access controller plugin for squid. + + http://www.squidguard.org/ + +if BR2_PACKAGE_SQUIDGUARD +config BR2_PACKAGE_SQUIDGUARD_DEFAULT_CONF + bool "squidguard default blacklists and configuration" + help + Add default blacklists provided by squidGuard and associated + configuration file. + + http://www.squidguard.org/ +endif diff --git a/package/squidguard/squidGuard.conf b/package/squidguard/squidGuard.conf new file mode 100644 index 0000000..c2d612f --- /dev/null +++ b/package/squidguard/squidGuard.conf @@ -0,0 +1,20 @@ +# +# Default config file for squidGuard +# + +dbhome /var/lib/squidGuard/db +logdir /var/log/squidGuard + + +dest blacklist { + domainlist blacklist/domains + urllist blacklist/urls + expressionlist blacklist/expressions + } + +acl { + default { + pass !blacklist all + redirect http://localhost/block.html + } +} \ No newline at end of file diff --git a/package/squidguard/squidguard-01-fix-for-db5.patch b/package/squidguard/squidguard-01-fix-for-db5.patch new file mode 100644 index 0000000..6600722 --- /dev/null +++ b/package/squidguard/squidguard-01-fix-for-db5.patch @@ -0,0 +1,15 @@ +Fix DB5 usage. + +Signed-off-by: Guillaume GARDET <guillaume.gardet@oliseo.fr> + +--- a/src/sgDb.c.orig 2014-07-23 13:10:54.335454387 +0200 ++++ b/src/sgDb.c 2014-07-23 13:14:15.167901834 +0200 +@@ -114,7 +114,7 @@ void sgDbInit(Db, file) + } + } + #endif +-#if DB_VERSION_MAJOR == 4 ++#if DB_VERSION_MAJOR >= 4 + if(globalUpdate || createdb || (dbfile != NULL && stat(dbfile,&st))){ + flag = DB_CREATE; + if(createdb) diff --git a/package/squidguard/squidguard-02-Fix_Makefile.patch b/package/squidguard/squidguard-02-Fix_Makefile.patch new file mode 100644 index 0000000..3cf0866 --- /dev/null +++ b/package/squidguard/squidguard-02-Fix_Makefile.patch @@ -0,0 +1,120 @@ +Fix Makefiles to make use of DESTDIR. + +Signed-off-by: Guillaume GARDET <guillaume.gardet@oliseo.fr> + + +Index: Makefile.in +=================================================================== +--- a/Makefile.in.orig ++++ b/Makefile.in +@@ -15,9 +15,9 @@ LIBS = @LIBS@ + RM = rm -f + MKINSTALLDIRS = mkdir -p + +-prefix = @prefix@ +-exec_prefix = @exec_prefix@ +-bindir = $(exec_prefix)/bin ++prefix = $(DESTDIR)@prefix@ ++exec_prefix = $(DESTDIR)@exec_prefix@ ++bindir = @bindir@ + infodir = $(prefix)/info + logdir = @sg_logdir@ + configfile = @sg_config@ +@@ -47,34 +47,28 @@ install: install-build install-conf + + install-conf: + @echo Installing configuration file ; +- @if [ ! -d $(prefix)/squidGuard ]; then \ +- $(MKINSTALLDIRS) $(prefix)/squidGuard ; \ +- echo Created directory $(prefix)/squidGuard ; \ +- chown -R $(SQUIDUSER) $(prefix)/squidGuard || exit 1 ; \ +- echo Assigned $(prefix)/squidGuard to user $(SQUIDUSER) ; \ ++ @if [ ! -d $(DESTDIR)$(prefix)/squidGuard ]; then \ ++ $(MKINSTALLDIRS) $(DESTDIR)$(prefix)/squidGuard ; \ ++ echo Created directory $(DESTDIR)$(prefix)/squidGuard ; \ + fi ; +- @if [ ! -d $(dbhomedir) ]; then \ +- $(MKINSTALLDIRS) $(dbhomedir) ; \ +- echo Created directory $(dbhomedir) ; \ +- chown -R $(SQUIDUSER) $(dbhomedir) || exit 1 ; \ +- echo Assigned $(dbhomedir) to user $(SQUIDUSER) ; \ ++ @if [ ! -d $(DESTDIR)$(dbhomedir) ]; then \ ++ $(MKINSTALLDIRS) $(DESTDIR)$(dbhomedir) ; \ ++ echo Created directory $(DESTDIR)$(dbhomedir) ; \ + fi ; +- @if [ ! -d $(logdir) ]; then \ +- $(MKINSTALLDIRS) $(logdir) ; \ +- echo Created directory $(logdir) ; \ +- chown -R $(SQUIDUSER) $(logdir) || exit 1 ; \ +- echo Assigned $(logdir) to user $(SQUIDUSER) ; \ ++ @if [ ! -d $(DESTDIR)$(logdir) ]; then \ ++ $(MKINSTALLDIRS) $(DESTDIR)$(logdir) ; \ ++ echo Created directory $(DESTDIR)$(logdir) ; \ + fi ; +- @if [ ! -d `dirname $(configfile)` ]; then \ ++ @if [ ! -d `dirname $(DESTDIR)$(configfile)` ]; then \ + umask 022 ; \ +- mkdir -p `dirname $(configfile)` ; \ +- echo No configuration directory found. Created `dirname $(configfile)`. ; \ ++ mkdir -p `dirname $(DESTDIR)$(configfile)` ; \ ++ echo No configuration directory found. Created `dirname $(DESTDIR)$(configfile)`. ; \ + fi; +- @if test ! -f $(configfile); then \ +- cp samples/sample.conf $(configfile) || exit 1 ; \ ++ @if test ! -f $(DESTDIR)$(configfile); then \ ++ cp samples/sample.conf $(DESTDIR)$(configfile) || exit 1 ; \ + echo Copied sample squidGuard.conf ; \ +- chmod 644 $(configfile) || exit 1 ; \ +- echo $(configfile) is now readable ; \ ++ chmod 644 $(DESTDIR)$(configfile) || exit 1 ; \ ++ echo $(DESTDIR)$(configfile) is now readable ; \ + echo The initial configuration is complete. ; \ + else \ + echo Configuration file found. Not changing anything ; \ +@@ -84,7 +78,7 @@ install-conf: + @echo ; + + install-build: +- @echo Installing squidGuard ++ @echo Installing squidGuard in $(bindir) + @if [ ! -d $(bindir) ]; then \ + $(MKINSTALLDIRS) $(bindir) ; \ + fi ; \ +Index: src/Makefile.in +=================================================================== +--- a/src/Makefile.in.orig ++++ b/src/Makefile.in +@@ -31,11 +31,11 @@ top_srcdir = @top_srcdir@ + srcdir = @srcdir@ + VPATH = @srcdir@ + +-prefix = @prefix@ +-exec_prefix = @exec_prefix@ +-bindir = $(exec_prefix)/bin +-logdir = @sg_logdir@ +-cfgdir = @sg_cfgdir@ ++prefix = $(DESTDIR)@prefix@ ++exec_prefix = $(DESTDIR)@exec_prefix@ ++bindir = $(DESTDIR)@bindir@ ++logdir = $(DESTDIR)@sg_logdir@ ++cfgdir = $(DESTDIR)@sg_cfgdir@ + infodir = $(prefix)/info + + OBJS = main.o sgLog.o sgDb.o HTParse.o sgDiv.o sgFree.o y.tab.o lex.yy.o +@@ -122,12 +122,13 @@ uninstall:: uninstall.bin + + install.bin:: squidGuard + @echo making $@ in `basename \`pwd\`` +- @$(MKDIR) $(bindir) $(logdir) $(cfgdir) +- $(INSTALL_PROGRAM) squidGuard $(bindir)/squidGuard ++ @$(MKDIR) $(DESTDIR)$(bindir) $(DESTDIR)$(logdir) $(DESTDIR)$(cfgdir) ++ @echo installing squidGuard in $(DESTDIR)$(bindir)/squidGuard ++ $(INSTALL_PROGRAM) squidGuard $(DESTDIR)$(bindir)/squidGuard + + uninstall.bin:: + @echo making $@ in `basename \`pwd\`` +- $(RM) $(bindir)/squidGuard ++ $(RM) $(DESTDIR)$(bindir)/squidGuard + + update:: + @echo making $@ in `basename \`pwd\`` diff --git a/package/squidguard/squidguard-03-cross-compile.patch b/package/squidguard/squidguard-03-cross-compile.patch new file mode 100644 index 0000000..5ffb606 --- /dev/null +++ b/package/squidguard/squidguard-03-cross-compile.patch @@ -0,0 +1,42 @@ +Assume that DB is ok since auto-detection does not work. + +Signed-off-by: Guillaume GARDET <guillaume.gardet@oliseo.fr> + +--- a/configure.orig 2014-07-17 13:40:02.276083485 +0200 ++++ b/configure 2014-07-17 13:41:04.645497630 +0200 +@@ -4602,7 +4602,7 @@ fi + + LIBS="$LIBS -ldb" + if test "$cross_compiling" = yes; then +- db_ok_version=no ++ db_ok_version=yes + else + cat >conftest.$ac_ext <<_ACEOF + +@@ -4671,7 +4671,7 @@ if test $db_ok_version = no; then + fi + + if test "$cross_compiling" = yes; then +- db_ok_version=no ++ db_ok_version=yes + else + cat >conftest.$ac_ext <<_ACEOF + +@@ -4741,7 +4741,7 @@ if test $db_ok_version = no; then + fi + + if test "$cross_compiling" = yes; then +- dbg2_ok_version=no ++ dbg2_ok_version=yes + else + cat >conftest.$ac_ext <<_ACEOF + +@@ -4806,7 +4806,7 @@ _ACEOF + fi + + if test "$cross_compiling" = yes; then +- dbg3_ok_version=no ++ dbg3_ok_version=yes + else + cat >conftest.$ac_ext <<_ACEOF + diff --git a/package/squidguard/squidguard-04-Official-patch-20091015.patch b/package/squidguard/squidguard-04-Official-patch-20091015.patch new file mode 100644 index 0000000..475e220 --- /dev/null +++ b/package/squidguard/squidguard-04-Official-patch-20091015.patch @@ -0,0 +1,65 @@ +Patch-20091015: Official patch from squidguard project: +http://www.squidguard.org/Downloads/Patches/1.4/squidGuard-1.4-patch-20091015.tar.gz + + This patch fixes one buffer overflow problem in sgLog.c when overlong URLs + are requested. SquidGuard will then go into emergency mode were no blocking + occurs. This is not required in this situation. + The URLs must be build with a overlong sequence of slashes (/). + + ATTENTION: While squidGuard will no longer go into emergeny mode when one + overlong URL is passed to it, it is possible to use the overlong URL to + bypass the filter. This vulnerability is not fixed by this patch! + You can check if this vulnerability is actually exploited on your system + by checking the logfile squidGuard.log for the following warning (provided + you have not used the option --with-nolog=yes with configure before compiling + squidguard): + + Warning: Possible bypass attempt. Found multiple slashes where only one is expected: + + +Index: squidGuard-1.4/src/sgLog.c +=================================================================== +--- squidGuard-1.4.orig/src/sgLog.c 2007-11-16 17:58:32.000000000 +0100 ++++ squidGuard-1.4/src/sgLog.c 2010-07-29 13:47:50.000000000 +0200 +@@ -2,7 +2,7 @@ + By accepting this notice, you agree to be bound by the following + agreements: + +- This software product, squidGuard, is copyrighted (C) 1998-2007 ++ This software product, squidGuard, is copyrighted (C) 1998-2009 + by Christine Kronberg, Shalla Secure Services. All rights reserved. + + This program is free software; you can redistribute it and/or modify it +@@ -55,8 +55,8 @@ void sgLog(log, format, va_alist) + char msg[MAX_BUF]; + va_list ap; + VA_START(ap, format); +- if(vsprintf(msg, format, ap) > (MAX_BUF - 1)) +- fprintf(stderr,"overflow in vsprintf (sgLog): %s",strerror(errno)); ++ if(vsnprintf(msg, MAX_BUF, format, ap) > (MAX_BUF - 1)) ++ fprintf(stderr,"overflow in vsnprintf (sgLog): %s",strerror(errno)); + va_end(ap); + date = niso(0); + if(globalDebug || log == NULL) { +@@ -87,8 +87,8 @@ void sgLogError(format, va_alist) + char msg[MAX_BUF]; + va_list ap; + VA_START(ap, format); +- if(vsprintf(msg, format, ap) > (MAX_BUF - 1)) +- sgLogFatalError("overflow in vsprintf (sgLogError): %s",strerror(errno)); ++ if(vsnprintf(msg, MAX_BUF, format, ap) > (MAX_BUF - 1)) ++ sgLog(globalErrorLog, "overflow in vsnprintf (sgLogError): %s",strerror(errno)); + va_end(ap); + sgLog(globalErrorLog,"%s",msg); + } +@@ -104,8 +104,8 @@ void sgLogFatalError(format, va_alist) + char msg[MAX_BUF]; + va_list ap; + VA_START(ap, format); +- if(vsprintf(msg, format, ap) > (MAX_BUF - 1)) +- return; ++ if(vsnprintf(msg, MAX_BUF, format, ap) > (MAX_BUF - 1)) ++ sgLog(globalErrorLog, "overflow in vsnprintf (sgLogError): %s",strerror(errno)); + va_end(ap); + sgLog(globalErrorLog,"%s",msg); + sgEmergency(); diff --git a/package/squidguard/squidguard-05-Official-patch-20091019.patch b/package/squidguard/squidguard-05-Official-patch-20091019.patch new file mode 100644 index 0000000..aaab135 --- /dev/null +++ b/package/squidguard/squidguard-05-Official-patch-20091019.patch @@ -0,0 +1,45 @@ +Patch-20091019: Official patch from squidguard project: +http://www.squidguard.org/Downloads/Patches/1.4/squidGuard-1.4-patch-20091019.tar.gz + + This patch fixes two bypass problems with URLs which length is close to the + limit defined by MAX_BUF (default: 4096) in squidGuard and MAX_URL (default: + 4096 in squid 2.x and 8192 in squid 3.x) in squid. For this kind of URLs the + proxy request exceeds MAX_BUF causing squidGuard to complain about not being + able to parse the squid request. Increasing the buffer limit to be higher than + the one defined in MAX_URL solves the issue. + + The second problem, too, is related to the definition of these buffer limits. + Once squidGuard finds the parsed URL to be candidate for blocking it return + the block URL defined in the squidGuard configuration. The bypass occurs when + the redirect URL shall contain the information about the original URL. With + URLs close to MAX_URL the final URL exceeds this limit because of this addi- + tional information. The fix truncates the originally requested URL to 2048 + bytes. + + +Index: squidGuard-1.4/src/sg.h.in +=================================================================== +--- squidGuard-1.4.orig/src/sg.h.in ++++ squidGuard-1.4/src/sg.h.in +@@ -73,7 +73,7 @@ int tolower(); + #define REQUEST_TYPE_REDIRECT 2 + #define REQUEST_TYPE_PASS 3 + +-#define MAX_BUF 4096 ++#define MAX_BUF 12288 + + #define DEFAULT_LOGFILE "squidGuard.log" + #define WARNING_LOGFILE "squidGuard.log" +Index: squidGuard-1.4/src/sgDiv.c.in +=================================================================== +--- squidGuard-1.4.orig/src/sgDiv.c.in ++++ squidGuard-1.4/src/sgDiv.c.in +@@ -745,7 +745,7 @@ char *sgParseRedirect(redirect, req, acl + p++; + break; + case 'u': /* Requested URL */ +- strcat(buf, req->orig); ++ strncat(buf, req->orig, 2048); + p++; + break; + default: diff --git a/package/squidguard/squidguard-06-Official-patch-20150201.patch b/package/squidguard/squidguard-06-Official-patch-20150201.patch new file mode 100644 index 0000000..e3af5e8 --- /dev/null +++ b/package/squidguard/squidguard-06-Official-patch-20150201.patch @@ -0,0 +1,87 @@ +--- a/samples/squidGuard.cgi.in 2008-12-23 22:08:35.000000000 +0100 ++++ b/samples/squidGuard.cgi.in 2015-02-01 19:43:27.000000000 +0100 +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! /usr/bin/perl -w + # + # Explain to the user that the URL is blocked and by which rule set + # +@@ -6,7 +6,8 @@ + # French texts thanks to Fabrice Prigent (fabrice.prigent at univ-tlse1.fr) + # Dutch texts thanks to Anneke Sicherer-Roetman (sicherer at sichemsoft.nl) + # German texts thanks to Buergernetz Pfaffenhofen (http://www.bn-paf.de/filter/) +-# Spanish texts thanks to Samuel Garc??a). ++# Spanish texts thanks to Samuel Garc??a. ++# Russian texts thanks to Vladimir Ipatov. + # Rewrite by Christine Kronberg, 2008, to enable an easier integration of + # other languages. + # +@@ -57,21 +58,22 @@ sub showinaddr($$$$$); + # + # CONFIGURABLE OPTIONS: + # +-# (Currently: "en", "fr", "de", "es", "nl", "no") ++# (Currently: "en", "fr", "de", "es", "nl", "no", "ru") + @supported = ( + "en (English), ", +- "fr (Fran?ais), ", ++ "fr (Français), ", + "de (Deutsch), ", +- "es (Espa?ol), ", ++ "es (Español), ", + "nl (Nederlands), ", +- "no (Norsk)." ++ "no (Norsk), ", ++ "ru (Russian)." + ); + # + # Modifiy the values below to reflect you environment + # The image you define with "$image" and redirect will be displayed if the unappropriate + # url is of the type: gif, jpg, jpeg, png, mp3, mpg, mpeg, avi or mov. + # +-$image = "/images/blocked.gif"; # RELATIVE TO DOCUMENT_ROOT ++$image = "/Logos/md5.png"; # RELATIVE TO DOCUMENT_ROOT + $redirect = "http://admin.your-domain/images/blocked.gif"; # "" TO AVOID REDIRECTION + $proxy = "proxy.your-domain"; # Your proxy server + $proxymaster = "operator\@your-domain"; # The email of your proxy adminstrator +@@ -142,7 +144,7 @@ sub parsequery($) { + } + + # +-# PRINT HTTP STATUS HEARER: ++# PRINT HTTP STATUS HEADER: + # + sub status($) { + my $status = shift; +@@ -150,7 +152,7 @@ sub status($) { + } + + # +-# PRINT HTTP LOCATION HEARER: ++# PRINT HTTP LOCATION HEADER: + # + sub redirect($) { + my $location = shift; +@@ -249,7 +251,7 @@ sub showinaddr($$$$$) { + status("404 Not Found"); + } + if (@names) { +- print "Content-type: text/html\n\n"; ++ print "Content-type: text/html\n\n\n"; + print "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n"; + print "<html><head>\n"; + print "<title>$Babel{Title}</title>\n"; +@@ -317,9 +319,12 @@ if ($targetgroup eq "in-addr") { + showinaddr($targetgroup,$protocol,$address,$port,$path); + } + ++$url =~ s/</</g ; ++$url =~ s/>/>/g ; ++ + status("403 Forbidden"); + expires(0); +-print "Content-type: text/html\n\n"; ++print "Content-type: text/html\n\n\n"; + print "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n"; + print "<html><head>\n"; + print "<title>$Babel{Title}</title>\n"; diff --git a/package/squidguard/squidguard.mk b/package/squidguard/squidguard.mk new file mode 100644 index 0000000..7796aa9 --- /dev/null +++ b/package/squidguard/squidguard.mk @@ -0,0 +1,41 @@ +############################################################################### +# +# squidguard +# +############################################################################### + +SQUIDGUARD_VERSION = 1.4 +SQUIDGUARD_SOURCE = squidGuard-$(SQUIDGUARD_VERSION).tar.gz +SQUIDGUARD_SITE = http://www.squidguard.org/Downloads/ +SQUIDGUARD_LICENCE = GPLv2+ +SQUIDGUARD_LICENCE_FILE = COPYING +SQUIDGUARD_CONF_OPTS += --with-sg-config=/etc/squidGuard.conf \ + --with-sg-logdir=/var/log/squidGuard \ + --with-sg-dbhome=/var/lib/squidGuard/db \ + --with-db-inc=$(STAGING_DIR)/usr/include \ + --with-db-lib=$(STAGING_DIR)/usr/lib +SQUIDGUARD_DEPENDENCIES = host-bison host-flex berkeleydb + + +ifeq ($(BR2_PACKAGE_SQUIDGUARD_DEFAULT_CONF),y) + +define SQUIDGUARD_DEFAULT_BLACKLIST + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/domains \ + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/domains + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/expressions \ + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/expressions + $(INSTALL) -m 0644 -D $(SQUIDGUARD_DIR)/test/blacklist/urls \ + $(TARGET_DIR)/var/lib/squidGuard/db/blacklist/urls +endef + +define SQUIDGUARD_DEFAULT_CONF + $(INSTALL) -m 0644 -D package/squidguard/squidGuard.conf \ + $(TARGET_DIR)/etc/squidGuard.conf +endef + +SQUIDGUARD_POST_INSTALL_TARGET_HOOKS = SQUIDGUARD_DEFAULT_BLACKLIST SQUIDGUARD_DEFAULT_CONF + +endif + + +$(eval $(autotools-package)) -- 1.8.4.5 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-07-02 9:50 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-10-08 20:38 [Buildroot] [PATCH] squidguard: new package Guillaume GARDET 2014-10-10 21:51 ` Peter Korsgaard 2014-10-16 10:23 ` Guillaume GARDET - Oliséo 2014-10-17 21:10 ` Yann E. MORIN 2015-07-02 9:50 ` [Buildroot] [PATCH V2] " Guillaume GARDET
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox