aboutsummaryrefslogtreecommitdiff
path: root/ports-mgmt
diff options
context:
space:
mode:
authorSimon L. B. Nielsen <simon@FreeBSD.org>2006-04-16 13:32:28 +0000
committerSimon L. B. Nielsen <simon@FreeBSD.org>2006-04-16 13:32:28 +0000
commit75654bee2f233efd17c4fc79244ec0b0fa2cc67b (patch)
treee86e6e6c5f03fe9da3e0bf8e886dd5ae9274306e /ports-mgmt
parentd0ccdc7ed402d0ec0d6aa253331af0e8c61cf6fb (diff)
downloadports-75654bee2f233efd17c4fc79244ec0b0fa2cc67b.tar.gz
ports-75654bee2f233efd17c4fc79244ec0b0fa2cc67b.zip
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
Notes
Notes: svn path=/head/; revision=159700
Diffstat (limited to 'ports-mgmt')
-rw-r--r--ports-mgmt/portaudit/Makefile2
-rw-r--r--ports-mgmt/portaudit/files/portaudit-cmd.sh4
2 files changed, 5 insertions, 1 deletions
diff --git a/ports-mgmt/portaudit/Makefile b/ports-mgmt/portaudit/Makefile
index 914dd0c95f35..8d585f433cba 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 b16c7e368dab..4a303698ce4c 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) {