summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsimon <simon@FreeBSD.org>2006-04-16 13:32:28 +0000
committersimon <simon@FreeBSD.org>2006-04-16 13:32:28 +0000
commit95e94156428fb9db22cee6360ce1e85b6baa0a25 (patch)
treed5f1c00bc6dd12ee853a1156897896954f9fe133
parent45267d52fcdbd95c87afda00eb77dc66c93a4df9 (diff)
downloadFreeBSD-ports-95e94156428fb9db22cee6360ce1e85b6baa0a25.zip
FreeBSD-ports-95e94156428fb9db22cee6360ce1e85b6baa0a25.tar.gz
Avoid unnecessary invocations of pkg_info by checking whether the
package is installed or not using a precalculated regex. This speeds up "portaudit -a" with around a factor of 10. The change is slightly modified from the one from the PR by using pkg_info -aE instead of ls /var/db/pkg for determining installed packages. Submitted by: Kuang-che Wu <kcwu@csie.org> PR: ports/92942
-rw-r--r--ports-mgmt/portaudit/Makefile2
-rw-r--r--ports-mgmt/portaudit/files/portaudit-cmd.sh4
-rw-r--r--security/portaudit/Makefile2
-rw-r--r--security/portaudit/files/portaudit-cmd.sh4
4 files changed, 10 insertions, 2 deletions
diff --git a/ports-mgmt/portaudit/Makefile b/ports-mgmt/portaudit/Makefile
index 914dd0c..8d585f4 100644
--- a/ports-mgmt/portaudit/Makefile
+++ b/ports-mgmt/portaudit/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= portaudit
-PORTVERSION= 0.5.10
+PORTVERSION= 0.5.11
CATEGORIES= security
DISTFILES=
diff --git a/ports-mgmt/portaudit/files/portaudit-cmd.sh b/ports-mgmt/portaudit/files/portaudit-cmd.sh
index b16c7e3..4a30369 100644
--- a/ports-mgmt/portaudit/files/portaudit-cmd.sh
+++ b/ports-mgmt/portaudit/files/portaudit-cmd.sh
@@ -131,6 +131,7 @@ audit_installed()
local osversion=`sysctl -n kern.osreldate`
fixedre=`echo -n $portaudit_fixed | tr -c '[:alnum:]- \t\n' 'x' | tr -s ' \t\n' '|'`
+ installedre=`$pkg_info -aE | sed -e 's/-[^-]*$//g' | paste -s -d '|' -`
extract_auditfile | awk -F\| "$PRINTAFFECTED_AWK"'
BEGIN { vul=0; fixedre="'"$fixedre"'" }
@@ -144,6 +145,9 @@ audit_installed()
}
next
}
+ $1 ~ /^[^{}*?]*[<=>!]/ {
+ if ($1 !~ "^('"$installedre"')[<=>!]") next;
+ }
{
cmd="'"$pkg_info"' -E \"" $1 "\""
while((cmd | getline pkg) > 0) {
diff --git a/security/portaudit/Makefile b/security/portaudit/Makefile
index 914dd0c..8d585f4 100644
--- a/security/portaudit/Makefile
+++ b/security/portaudit/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= portaudit
-PORTVERSION= 0.5.10
+PORTVERSION= 0.5.11
CATEGORIES= security
DISTFILES=
diff --git a/security/portaudit/files/portaudit-cmd.sh b/security/portaudit/files/portaudit-cmd.sh
index b16c7e3..4a30369 100644
--- a/security/portaudit/files/portaudit-cmd.sh
+++ b/security/portaudit/files/portaudit-cmd.sh
@@ -131,6 +131,7 @@ audit_installed()
local osversion=`sysctl -n kern.osreldate`
fixedre=`echo -n $portaudit_fixed | tr -c '[:alnum:]- \t\n' 'x' | tr -s ' \t\n' '|'`
+ installedre=`$pkg_info -aE | sed -e 's/-[^-]*$//g' | paste -s -d '|' -`
extract_auditfile | awk -F\| "$PRINTAFFECTED_AWK"'
BEGIN { vul=0; fixedre="'"$fixedre"'" }
@@ -144,6 +145,9 @@ audit_installed()
}
next
}
+ $1 ~ /^[^{}*?]*[<=>!]/ {
+ if ($1 !~ "^('"$installedre"')[<=>!]") next;
+ }
{
cmd="'"$pkg_info"' -E \"" $1 "\""
while((cmd | getline pkg) > 0) {
OpenPOWER on IntegriCloud