diff --git a/openup b/openup index 84cbabb..5367316 100755 --- a/openup +++ b/openup @@ -17,9 +17,7 @@ # Author: Antoine Jacoutot # TODO -# check_vuxml(): download vuxml and don't hardcode the path (/tmp/...) # check_vuxml(): add support for binpatches -# check_vuxml(): compare with installed version to not output all vulns of a pkg ### user defined variables OPENUP_URL="https://stable.mtier.org/openup" @@ -27,7 +25,6 @@ PKG_CERT_URL="https://stable.mtier.org/mtier.cert" PKG_CERT_FPRINT="DE:29:0F:7F:B8:0E:36:5A:AF:A9:BF:E0:4E:08:C2:0F:2D:50:16:97" PKG_PATH_MAIN="http://ftp.fr.openbsd.org/pub/OpenBSD/$(uname -r)/packages/$(arch -s)" PKG_PATH_UPDATE="https://stable.mtier.org/updates/$(uname -r)/$(arch -s)" -PKG_VUXML="https://stable.mtier.org/vuxml/53.xml" ### end of user defined variables ######################################################################## @@ -81,8 +78,10 @@ unset _BPLIST _MEESA=$(readlink -f $0) _TMPDIR="${_TMPDIR:=/tmp}" _TMPCERT=$(mktemp -p ${_TMPDIR} openup-pkg_cert.XXXXXX) || exit 1 -_TMPUPD=$(mktemp -p ${_TMPDIR} openup-update.XXXXXX) || exit 1 _TMPSPLITCERT=$(mktemp -p ${_TMPDIR} openup-split_cert.XXXXXX) || exit 1 +_TMPUPD=$(mktemp -p ${_TMPDIR} openup-update.XXXXXX) || exit 1 +_TMPVUXML=$(mktemp -p ${_TMPDIR} openup-vuxml.XXXXXX) || exit 1 +_VUXML_URL="https://stable.mtier.org/vuxml/${_REL_INT}.xml" export PKG_PATH=${PKG_PATH_UPDATE}:${PKG_PATH_MAIN} @@ -175,9 +174,12 @@ update_pkg() { eval ${_CMD} } +# this only outputs the most recent vulnerability check_vuxml() { local _OUTDATED + ftp -Vo ${_TMPVUXML} ${_VUXML_URL} >/dev/null + _OUTDATED=$(pkg_add -nuv -D nosig 2>/dev/null | \ grep '(installing)(pretending)' | \ sed -e 's,Adding ,,;s,(pretending),,;s,->.*,,' | \ @@ -187,7 +189,7 @@ check_vuxml() { do pr_bigarrow "${p} <" # XXX how do we print only the 1st matching range in awk? - awk "/${p}<\/name>/,/<\/vuln>/" /tmp/53.xml | \ + awk "/${p}<\/name>/,/<\/vuln>/" ${_TMPVUXML} | \ sed '/<\/vuln>/,$d' | \ sed -n -e 's/.*\(.*\)<\/lt><\/range>.*/\1/p' \ -e 's/.*

\(.*\)<\/p>.*/\1/p' | uniq |\